0

我正在按照 Ryan B 的教程进行操作,但是在尝试检查用户的角色时出现了问题。

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

class Ability 
  include CanCan::Ability

  def initialize(person)
    raise person.inspect
    can :read, :all
  end
end
4

1 回答 1

0

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

  def initialize(person)
    user ||= User.new
    if user.role? :somerole
      can :read, :all
    else
     #whatever guest can do
    end
  end
于 2010-12-03T10:54:27.397 回答