活跃管理员是一个用于在应用程序中拥有管理仪表板的 gem。它使用 Devise 来登录用户并创建一个单独的admin_user
管理员的模型。我的应用程序已经使用了 devise 并将其用户作为user
模型。自从我开始使用 active admin gem 以来,在我的路由文件中,即使我的用户已登录,以下行也会不断解析为 home#index 而不是 users#dashboard 。这在以前可以正常工作,其中登录的用户被带到用户#dashboard 作为根 url。
root :to => 'users#dashboard', :constraints => lambda {|r| r.env["warden"].authenticate? }
root :to => 'home#index'
正在发生的事情是.authenticate?
正在检查admin_user
(属于活动管理员)是否已登录但不是我的user
model 这是我需要检查的,所以当我登录到活动管理界面时,我的站点根目录变为 users#dashboard 而无需检查是否user
是否已登录。我怎样才能使.authenticate?
检查user
正在登录和未登录admin_user
?
任何帮助或线索将非常感激
我能够解决这个问题。该问题与 Devise 期望应用程序中使用单个用户模型有关。以下是修复方法。
In the config/initializers/devise.rb
文件,添加:
config.scoped_views = true
and
config.default_scope = :user #or whichever is your regular default user model
就是这样,典狱长检查 :user 是否已登录,而不是 :admin_user
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)