1

我有一个使用在 rails 引擎中定义的 ActiveRecord 模型的 rails 应用程序。我想为该类添加一些方法(在本例中为 FormInstance),因此我只需使用以下语法:

class FormInstance
  def mynewmethod
    #..my code here..
  end
end

但这似乎不起作用。它确实使用新方法创建了 FormInstance 类,但它没有扩展 Engine 类,FormInstance 类的所有原始方法都消失了。这样做的正确方法是什么?

环境:铁路 3.2.13,红宝石 2.0.0

4

1 回答 1

0

您可以使用装饰器模式来做到这一点。有多种实现方式。看看 activesupport-decorators gem。它挂钩到 Rails ActiveSupport 并添加一个约定来做装饰器,以防止循环依赖。一段时间以来,我们一直在多个应用程序的生产环境中使用它。

https://github.com/EPI-USE-Labs/activesupport-decorators

于 2016-07-01T15:27:35.150 回答