所以我在before_filter
中实现ApplicationController
以检查用户的自定义enabled
属性,如果有管理员,它会终止会话并将其返回到登录页面已经禁用了他们的帐户。
我一直遇到错误,例如:
undefined method current_user
和
undefined method user_signed_in?
我google了一下,尝试了StackOverflow的其他解决方案(见下文),但它没有用。
将以下内容添加到application.rb
:
config.action_controller.include_all_helpers = false
答案 0 :(得分:2)
在敲了一下之后,我记得在Active Admin配置文件active_admin.rb
中读取了一些关于为admin用户设置帮助方法的内容。
注意:我使用的是Active Admin的User
,而不是使用Devise的默认AdminUser
模式。
因此,如果您查看active_admin.rb
文件,您会看到:
# This setting changes the method which Active Admin calls
# (within the application controller) to return the currently logged in user.
config.current_user_method = :current_admin_user
所以在这里,Active Admin会覆盖Devise的current_user
帮助者!
然后我突然明白了:
使用:current_user
current_admin_user
而不是user_signed_in?
,请使用:admin_user_signed_in?