我有一台Widget模型。
I include SomeConcern
SomeConcern extends Activesupport::Concern这一切都很好。我可以像to_liquid一样调用SomeConcern中定义的方法,一切都很顺利。
一旦我在Widget类中调用了liquid_methods :foobar,我所关注的to_liquid方法就会被liquid的默认方法覆盖。
我怎样才能让我的关注点版本接管优先权呢?
发布于 2014-05-16 10:18:40
当您在模型中调用liquid_methods时,liquid将使用define_method :to_liquid。
如果您希望您的混入优先,则必须在调用之后包含它。
您可以做的另一件事是拥有一个常规模块(它总是比ActiveSupport::Concern更可取),并使用prepend将其放在祖先链的前面。
https://stackoverflow.com/questions/23689854
复制相似问题