ActiveSupport ::关注`to_liquid`覆盖`liquid_methods`

时间:2014-05-15 22:38:06

标签: ruby-on-rails inheritance liquid operator-precedence activesupport-concern

我有一个模型Widget

include SomeConcern

SomeConcern extends Activesupport::Concern 多数民众赞成。我可以调用SomeConcern中定义的方法,比如to_liquid,一切都很好。

liquid_methods :foobar课程中呼叫Widget后,我所关注的to_liquid方法会被默认的液体覆盖。

如何让我的关注版本接管优先权?

1 个答案:

答案 0 :(得分:0)

当您在模型中调用define_method :to_liquid时,

liquid使用liquid_methods

你希望你的mixin优先,你必须在那次通话后加入它。

你可以做的另一件事是有一个常规模块(总是优于ActiveSupport::Concern)并使用prepend将它放在祖先链的前面。