0
有沒有方法在Pundit
的authorization
方法中指定策略類?當你做如何通過專家策略中的專家授權(Rails)
authorize @user, :show
它使用UserPolicy
類,因爲@user
是User
(模型)的實例。有人知道在另一個策略類上執行authorize
方法的方法嗎?如CustomerPolicy
,不存在Customer
模型類。
有沒有方法在Pundit
的authorization
方法中指定策略類?當你做如何通過專家策略中的專家授權(Rails)
authorize @user, :show
它使用UserPolicy
類,因爲@user
是User
(模型)的實例。有人知道在另一個策略類上執行authorize
方法的方法嗎?如CustomerPolicy
,不存在Customer
模型類。
您可以使用符號而不是模型實例來調用「無頭」策略(沒有支持模型的策略)。
authorize :customer, :show
# or for a namespaced policy
authorize [:people, :customer]
另一種選擇是設置模型類政策:
class User < ActiveRecord::Base
def self.policy_class
CustomerPolicy
end
end
https://github.com/elabs/pundit#headless-policies – max
不錯,就在那裏(小白)。只需補充說明,如果策略是命名空間的,那麼您需要爲命名空間提供一個符號數組,如果您擁有「People :: CustomerPolicy」,那麼授權將是'authorize [:people,:customer]'。如果幫助某人:P – mariowise