有没有办法在authorization
的{{1}}方法中指定策略类?当你这样做
Pundit
它使用 authorize @user, :show
类,因为UserPolicy
是@user
(模型)实例。有人知道在另一个策略类上执行User
方法的方法吗?像authorize
一样,没有CustomerPolicy
模型类。
答案 0 :(得分:2)
您可以使用符号而不是模型实例来调用"无头"政策(没有支持模式的政策)。
authorize :customer, :show
# or for a namespaced policy
authorize [:people, :customer]
另一种选择是在模型类上设置策略:
class User < ActiveRecord::Base
def self.policy_class
CustomerPolicy
end
end