我有权威的策略类,它声明了另一个类:
class PaymentPolicy < ApplicationPolicy
class Scope < Scope
def resolve
return scope.all if user.root?
scope.where(user: user)
end
end
end
现在我想在另一个地方使用同一个内部Scope
类。一种方法是在超类和覆盖中定义它,但要做到这一点,我必须创建另一个类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
如何将嵌套类定义放在关注模块中?