活动管理员和设计:current_user和user_signed_in?未定义

时间:2014-11-07 14:45:22

标签: ruby-on-rails-4 devise activeadmin

所以我在before_filter中实现ApplicationController以检查用户的自定义enabled属性,如果有管理员,它会终止会话并将其返回到登录页面已经禁用了他们的帐户。

我一直遇到错误,例如:

undefined method current_userundefined method user_signed_in?

我google了一下,尝试了StackOverflow的其他解决方案(见下文),但它没有用。

将以下内容添加到application.rb

config.action_controller.include_all_helpers = false

1 个答案:

答案 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?

砰的一声,完成了!

相关问题