我正在使用Devise和CanCan对Rails 3应用程序的前端进行授权。我还有Active Admin作为后端的接口。我正在尝试为后端的管理员创建不同的角色。两端都有一个使用不同“用户”模型的登录表单。表。问题是CanCan从前端获取当前用户(抓取当前用户对象)并使用它来查看后端中的某个人是否具有正确的权限。
那么,我怎样才能让CanCan正确抓取登录的管理员用户?
如果有人需要更多信息,我很乐意提供。
答案 0 :(得分:9)
之前我没有使用ActiveAdmin
,但之前曾在几个项目中使用Devise and Cancan
。
设置控制器应调用的方法,以使用以下方式验证当前用户:
# config/initializers/active_admin.rb
config.authentication_method = :authenticate_admin_user!
设置要在视图中调用的方法以访问当前管理员用户
# config/initializers/active_admin.rb
config.current_user_method = :current_admin_user
您可以通过查看:current_admin_user
代替:current_user
来覆盖应用中的Cancan行为。
请参阅此处Cancan changing defaults 如果你仍然无法得到它,请发布你遇到的问题。