我正在关注Ryan B的教程,但是在尝试检查用户角色时,我发现了问题。

当我检查它时,为什么我会得到零初始化参数。初始化参数与人对象之间是否有任何连接,在瑞安的教程中,在初始化方法和用户模型上使用“用户”参数。我在这里忘记了基本的东西吗?这些是我的代码,谢谢!

class Ability 
  include CanCan::Ability

  def initialize(person)
    raise person.inspect
    can :read, :all
  end
end
有帮助吗?

解决方案

运行此代码时,很可能没有登录用户。您需要创建某种客人用户来检查未登录用户的权限

  def initialize(person)
    user ||= User.new
    if user.role? :somerole
      can :read, :all
    else
     #whatever guest can do
    end
  end
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top