2012-05-17 48 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进行身份验证。