从重写范围中包含的关注点调用重写范围


所以基本上我有一个类MyClass,它包含一个带有作用域'foo‘的关注点MyConcern。我希望能够覆盖MyClass中的作用域'foo‘,但仍然能够在MyConcern中调用被覆盖的作用域。

module MyConcern {
  extend ActiveSupport::Concern

  included do
    scope :foo, lambda{ |x|
      puts "Hello"
    }
  end
}

class MyClass {
  include MyConcern

  scope :foo, lambda{ |x|
    MyConcern.foo(x)
    puts " World"
  }
}

因此,当我调用@myClass.foo(1) (其中@myClass是MyClass的一个实例)时,我应该能够看到打印出的"Hello World“。

我能找到的一个类似的线程是Calling super in overriden scope defined in concern,但不幸的是我不能在我的例子中使用常规的类方法。

任何帮助都将不胜感激!

转载请注明出处:http://www.shenkehuoyun.com/article/20230526/2210141.html