2012-05-17 74 views
0

我試圖定義我的能力如下:如何正確定義Ability.rb(CanCan)?

class Ability 
    include CanCan::Ability 

    def initialize(user) 

    user ||= User.new # guest user (not logged in) 

    if user.role == 'admin' 
     can :manage, :all 
    elsif user.role == 'member' 
     can :manage, [User,Post] , :id => user.id 
     cannot :index, User # list users page 
    else 
     can :read, :all 
    end 
    end 
end 

並已包括在我的PostsController的頂部load_and_authorize_resource

如果我理解了定義,來賓用戶不應該有權訪問PostsController中的create行爲,但他們這樣做。

對此行爲的任何解釋?

編輯

解決了!

剛纔意識到我忘了添加before_filter :authenticate_user!,因爲我使用Devise進行身份驗證。

回答

0

解決!

剛纔意識到我忘了添加before_filter :authenticate_user!,因爲我使用Devise進行身份驗證。