2015-09-11 1 views
1

Я подключил движок к моему приложению, которое использует Devise. А также я собираюсь установить еще один, который должен использовать его также. Поэтому я решил использовать Devise от первого двигателя.Нет совпадений в маршруте [GET] "/ accounts/sign_in" при использовании устройства с установленным движком

config/routes.rb:

Rails.application.routes.draw do 
    mount EngineWithDevise::Engine => "/engine_with_devise" 
    mount MyEngine::Engine => "/my_engine" 
end 

Все работает нормально, но когда я добавил следующий код:

module MyEngine 
    class ApplicationController < ActionController::Base 
    before_action :authenticate_account! 
    end 
end 

я получил следующее сообщение об ошибке:

ActionController::RoutingError: 
    No route matches [GET] "/accounts/sign_in" 

Так перенаправляет /accounts/sign_in вместо от /devise_with_engine/accounts/sign_in

Когда я нахожу его вручную, журналы успешно завершаются, а затем работают правильно. При монтировании двигатель / он работает правильно:

Rails.application.routes.draw do 
    mount EngineWithDevise::Engine => "/" 
    mount MyEngine::Engine => "/my_engine" 
end 

Согласно manual я добавил имя маршрутизатора:

config.router_name = engine_with_devise 

и сделал все описанные там. Но это не помогло.

Я использую последнюю версию DEViSE

Любые мысли?

ответ

1

При отладке драгоценного камня devise я нашел commit, который разбивает путь по умолчанию по умолчанию. Так что теперь решение использовать Разрабатывают 3.5.1 вместо 3.5.2 (на данный момент последняя версия Разрабатывают)

Проблема также описана here

Смежные вопросы