繁体   English   中英

将管理员角色添加到Devise的用户模型中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM