ali*_*lik 11 ruby-on-rails devise warden ruby-on-rails-3.1 activeadmin
Active Admin是一个用于在应用程序中使用管理仪表板的gem.它使用Devise登录用户并admin_user为管理员创建单独的模型.我的应用程序已经使用了设计并将其用户作为user模型.自从我开始使用活动的admin gem之后,在我的路由文件中,即使我的用户已登录,以下行仍然会解析为home #index而不是用户#spaceboard.这在以前登录用户被带到用户的时候工作得很好#dashboard作为根网址.
root :to => 'users#dashboard', :constraints => lambda {|r| r.env["warden"].authenticate? }
root :to => 'home#index'
Run Code Online (Sandbox Code Playgroud)
发生的事情是.authenticate?检查是否admin_user属于(属于Active Admin)登录或不登录我的user模型,这是我需要检查的,所以当我登录到活动管理界面时,我的站点root成为用户#dashboard而不检查是否user已登录.如何.authenticate?检查user登录信息admin_user?
任何帮助或线索将非常感谢
ali*_*lik 20
我能够解决这个问题.该问题与Devise期望应用程序中的单个用户模型有关.这是如何解决它.
在config/initializers/devise.rb文件中,添加:
config.scoped_views = true
Run Code Online (Sandbox Code Playgroud)
和
config.default_scope = :user #or whichever is your regular default user model
Run Code Online (Sandbox Code Playgroud)
多数民众赞成,warden检查:用户是否登录而不是:admin_user
| 归档时间: |
|
| 查看次数: |
8310 次 |
| 最近记录: |