我们的应用程序结构为一个核心应用程序,其中包含所有具有许多引擎的模型,这些引擎可为不同的站点提供支持。
的Gemfile:
gem 'rails', '4.1.1'
gem 'leadsengine', path: "engines/leadsengine"
gem 'profilesengine', path: "engines/profilesengine"
gem 'sourmilkengine', path: "engines/sourmilkengine"
gem 'reports', path: 'engines/reports'
直到最近,这些引擎中只有一个使用了Devise(leadsengine)。然后我们添加了sourmilkengine并发现当用户尝试登录/ leadsengine时,设计将它们重定向到/ sourmilkengine。反转gem中引擎的顺序切换重定向到最后运行Devise的引擎。
routes.rb(leadsengine)
Leadsengine::Engine.routes.draw do
devise_for :user, {
class_name: 'User',
module: :devise
}
routes.rb(sourmilkengine)
Sourmilkengine::Engine.routes.draw do
devise_for :user, {
class_name: 'User',
module: :devise
}
我注意到这个被拒绝的拉取请求https://github.com/plataformatec/devise/issues/2827,并想知道是否找到了更好的解决方案?