我试图将我的能力定义如下:
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
并已包含load_and_authorize_resource
在我的PostsController
.
如果我理解这些定义,来宾用户不应该有权访问该create
操作,PostsController
但他们可以。
对这种行为有什么解释吗?
编辑
解决了!
刚刚意识到我忘记添加一个,before_filter :authenticate_user!
因为我正在使用设计进行身份验证。