2010-12-03 45 views
0

我正在從瑞恩B的教程,但我在嘗試檢查用戶的角色時出錯了。無CanCan初始化參數在能力.rb模型

爲什麼我在檢查它時得到了一個零初始化參數。在初始化參數與Person對象之間是否有任何聯繫,Ryan的教程是在初始化方法和用戶模型上使用'user'參數。我在這裏忘記了一些基本的東西嗎?這些是我的代碼,謝謝!

class Ability 
    include CanCan::Ability 

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

回答

0

當您運行此代碼時,很可能沒有登錄用戶。您需要創建某種訪客用戶來檢查針對未登錄用戶的權限

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

那麼,或者您也可以測試person.nil?分配訪客權限。 – 2010-12-03 13:47:13