内部で別のクラスを宣言する専門家ポリシー クラスがあります。
class PaymentPolicy < ApplicationPolicy
class Scope < Scope
def resolve
return scope.all if user.root?
scope.where(user: user)
end
end
end
Scope
今度は、この同じ内部クラスを別の場所で使用したいと考えています。1 つの方法は、スーパークラスで定義してオーバーライドすることですが、そのためには、別のクラスを作成してclass NewClass < ApplicationPolicy
継承する必要がありPaymentPolicy
ます。しかし、クラス定義を懸念モジュール内に配置する方法が好きActiveSupport::Concern
で、わかりません。これ
module UserAllowed
extend ActiveSupport::Concern
included do
class Scope < Scope
def resolve
return scope.all if user.root?
scope.where(user: user)
end
end
end
end
動作しません。これも:
module UserAllowed
extend ActiveSupport::Concern
class Scope < Scope
def resolve
return scope.all if user.root?
scope.where(user: user
end
end
end
ネストされたクラス定義を懸念モジュール内に配置するにはどうすればよいですか?