3

我有权威政策类,它在里面声明了另一个类:

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

如何将嵌套类定义放在关注模块中?

4

0 回答 0