当我使用以下命令调用can方法时,我的CanCan实现拒绝访问:create specified。这是我的能力实施:
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # User is not logged in (Guest)
if user.id == nil # Guest user
can [:create, :update], Device
else
if user.admin?
can :manage, :all
else
can :manage, Spot, :user_id => user.id
end
end
end
end
基本上我希望未经过身份验证的用户能够向我的Devices控制器的创建和更新操作提交POST和PUT请求。但是,当我尝试提交POST请求时,CanCan拒绝了请求(我被要求登录)。
在我的设备控制器的顶部,我只需调用load_and_authorize_resouce。
有没有人知道为什么CanCan会在这上面提出一个AccessDenied异常?