我试图将自己的能力定义如下:
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!
,因为我正在使用Devise进行身份验证。
答案 0 :(得分:0)
解决!
刚才意识到我忘记添加before_filter :authenticate_user!
,因为我正在使用Devise进行身份验证。