0

我有几个包含相同模块的类,我想在我的代码中的一个位置覆盖模块的方法之一。这该怎么做?

我试过

module [Module_name]
  def [method_to_override]

并将其添加到rails的自动加载路径但没有成功

4

1 回答 1

0

如果您将模块用作 mixin,则可以在类中重新定义该方法。在类级别定义的方法在调用时将优先。在这种情况下,作为 mixin 的模块只是表现为超类。

如果您将模块用作命名空间,我不确定是否有一种方法可以像您尝试做的那样动态地重新定义代码。也许就地打开命名空间模块并包含该方法的新代码将起作用。我以前没试过这个。

一些参考资料

于 2012-11-01T11:01:19.877 回答