[英]Add an Admin Role to the Devise's User Model
我认为我的问题很简单,我一步一步地按照本页上显示的第二个选项如何:添加管理员角色 。 现在我想使用current_user.admin? 使用before_action方法(因此before_action :current_user.admin?
),但我看到了这个错误。
**undefined method `admin?' for :current_user:Symbol**
我甚至不能使用带有before_action方法的方法admin,如果你想知道,是的,我已经登录了。
现在,我能做的是在控制器中定义一个新方法,例如admin_only。
def admin_only
if !current_user.admin then
redirect_to :back, :alert => "Access denied."
end
end
然后使用before_action :admin_only
并且它运行良好,但我认为它打破了控制器的逻辑,以定义一个方法,如admin_only。 那么......有没有办法过滤管理员而不必在控制器中定义新方法?
您应该定义一个方法来执行此操作。 因为before_action
需要您有一个已定义的操作,并告诉rails通过将其名称作为符号传递来调用它。
这就是为什么你得到一个未定义的方法错误,原因:current_user
只是一个符号,而不是你期望的用户对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.