ruby-on-rails - 无法覆盖 Spree 的 helper 方法

标签 ruby-on-rails spree

为什么我的代码没有覆盖 Spree 的代码?

app/helpers/spree/frontend_helper_decorator.rb

Spree::FrontendHelper.module_eval do

    def taxons_tree(root_taxon, current_taxon, max_level = 1)
      return '' if max_level < 1 || root_taxon.children.empty?
      content_tag :ul, class: 'taxons-list' do
        root_taxon.children.map do |taxon|
          css_class = (current_taxon && current_taxon.self_and_ancestors.include?(taxon)) ? 'current' : nil
          content_tag :li, class: css_class do
           link_to(taxon.name, seo_url(taxon)) +
           taxons_tree(taxon, current_taxon, max_level - 1)
          end
        end.join("\n").html_safe
      end
    end

end

最佳答案

您的 application.rb 中是否有此内容?

config.to_prepare do
  # Load application's model / class decorators
  Dir.glob(File.join(File.dirname(__FILE__), "../app/**/*_decorator*.rb")) do |c|
    Rails.configuration.cache_classes ? require(c) : load(c)
  end

  # Load application's view overrides
  Dir.glob(File.join(File.dirname(__FILE__), "../app/overrides/*.rb")) do |c|
    Rails.configuration.cache_classes ? require(c) : load(c)
  end
end

关于ruby-on-rails - 无法覆盖 Spree 的 helper 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55703865/

相关文章:

ruby-on-rails - to_d 在 ruby​​ 中总是返回 2 个小数位

mysql - 使用 Rails 连接到远程 MySQL 主机时出现问题

ruby-on-rails - 迁移后如何销毁并重新安装 Gem?

ruby-on-rails - 如何覆盖 Spree 结帐表单和步骤流程?

css-selectors - Spree Deface,可以选择除类别之外的任何内容

ruby-on-rails - Rails 中事件管理中的默认操作不会使 "delete"按钮创建销毁链接

ruby-on-rails - Rails 中特定页面的不同布局

ruby-on-rails - 跨两个 Ruby 模块继承/共享代码

ruby-on-rails - Spree 管理面板中的自定义选项卡

helper - Spree 覆盖辅助方法