我正在关注Ryan B的教程,但在尝试检查用户的角色时出了点问题。
为什么我检查时会得到一个nil initialize参数。初始化参数与Person对象之间是否存在任何关联,Ryan的教程在初始化方法和用户模型上使用'user'参数。我忘记了一些基本的东西吗?这些是我的代码,谢谢!
class Ability
include CanCan::Ability
def initialize(person)
raise person.inspect
can :read, :all
end
end
答案 0 :(得分:0)
运行此代码时,很可能没有登录用户。您需要创建某种来宾用户来检查针对未登录用户的权限
def initialize(person)
user ||= User.new
if user.role? :somerole
can :read, :all
else
#whatever guest can do
end
end