在授权方面,我试图更好地了解 CanCan 的功能。想象一下这个控制器动作:
def update
if can? :action, Model or can? :resolve, Model or can? :authorize, AnotherModel
# My Code here
respond_with @model
else
raise CanCan::AccessDenied.new(nil, :update, Model)
end
end
我在尝试使用authorize!
. 据我所见(也在查看签名)authorize!
只接受一个权限(操作)和一个主题,并带有一条可选消息,如下所示:
def authorize!(action, subject, *args)
# code
end
有没有一种我可能会忽略的方法来指示授权检查多个操作?将两个授权一个接一个将充当AND
权限之间的条件,我希望它像一个OR
条件一样工作,基本上类似于上面的自定义代码(AuthorizationNotPerformed
在CanCan中有提高的问题,可以避免skip_authorize_resource
哪个不是我真的很想做的事情)。