在同一引擎

时间:2015-12-03 03:46:38

标签: ruby-on-rails

我在另一个引擎中装饰了几个辅助方法:

Backend::PathHelper.module_eval do

  def spent_appable_points_path(paramz = {})
    send("spent_#{appable_type}_points_path", appable, paramz)
  end      

  def earned_appable_points_path(paramz = {})
    send("earned_#{appable_type}_points_path", appable, paramz)
  end

end

在Backend引擎的视图中使用这两种方法可以正常工作。但是当我尝试在同一个引擎中使用这两种方法时,我正在装饰它们,它们不可用。

Backend::PathHelper.public_instance_methods # doesn't return them

在同一个引擎中使用这两种方法的正确DRY方式是什么?

1 个答案:

答案 0 :(得分:0)

最后我创建了另一个模块,就像这样注入它:

Backend::PathHelper.module_eval do

  include MyOtherEngine::PathHelper

end