关注的嵌套类定义

时间:2015-06-11 13:47:52

标签: ruby-on-rails ruby mixins activesupport-concern

我有权威的策略类,它声明了另一个类:

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

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

0 个答案:

没有答案