施普雷压倒一切的helper方法(Spree overriding helper method)

2019-07-31 00:48发布

我想用这个来覆盖base_helper.rb的helper方法:

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

代替。

Answer 1:

重新打开该模块将工作一样好:

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

有使用没有特别的理由class_evalmodule_eval ,一直只是在很长一段时间的施普雷项目的习惯。



文章来源: Spree overriding helper method