CanCan中的Nil初始化ability.rb模型中的参数

时间:2010-12-03 10:41:11

标签: ruby-on-rails ruby-on-rails-plugins cancan

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

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

class Ability 
  include CanCan::Ability

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

1 个答案:

答案 0 :(得分:0)

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

  def initialize(person)
    user ||= User.new
    if user.role? :somerole
      can :read, :all
    else
     #whatever guest can do
    end
  end