狂欢覆盖帮助方法

时间:2012-08-16 13:31:57

标签: helper spree override

我正在尝试使用以下方法覆盖base_helper.rb的辅助方法:

module Spree
  module BaseHelper.class_eval do

    def taxons_tree(root_taxon, current_taxon, max_level = 1)
      .....
    end

  end
end

这不适合我。有人知道我在这里缺少什么吗?

谢谢!

固定

我应该使用:

Spree::BaseHelper.module_eval do

    def taxons_tree(root_taxon, current_taxon, max_level = 1)
      ...
    end

end

代替。

1 个答案:

答案 0 :(得分:22)

重新打开模块也会起作用:

module Spree
  module BaseHelper
   def taxons_tree(root_taxon, current_taxon, max_level = 1)
      ...
   end
  end
end

没有特别的理由使用class_evalmodule_eval,这只是Spree项目很长一段时间的习惯。