狂欢商业分类错误

时间:2014-12-06 15:45:41

标签: ruby-on-rails spree

未定义的方法`每个'为零:NilClass

<% max_level = Spree::Config[:max_level_in_taxons_menu] || 1 %>
  <nav id="taxonomies" class="sidebar-item" data-hook>

  <% @taxonomies.each do |taxonomy| %>
    <% unless taxonomy.name == 'Tags' %>
      <h6 class="taxonomy-root"><%= Spree.t(:shop_by_taxonomy, :taxonomy => taxonomy.name) %></h6>
      <%= taxons_tree(taxonomy.root, @taxon, Spree::Config[:max_level_in_taxons_menu] || 1) %>

这是我得到的错误,这是我更新为taxonomies.each.to_a的代码,不确定这是否正确,如何更新代码,以便服务器将运行新代码而不是旧代码?

这是更新后的代码

<% max_level = Spree::Config[:max_level_in_taxons_menu] || 1 %>
<nav id="taxonomies" class="sidebar-item" data-hook>
  <% @taxonomies.each.to_a do |taxonomy| %>
    <% cache [I18n.locale, taxonomy, max_level] do %>
      <h6 class='taxonomy-root'><%= Spree.t(:shop_by_taxonomy, :taxonomy => taxonomy.name) %></h6>
      <%= taxons_tree(taxonomy.root, @taxon, max_level) %>
    <% end %>
  <% end %>
</nav>

1 个答案:

答案 0 :(得分:0)

看起来你正在做的是将一个零对象强制到一个数组,这将是有效的,这不是一个理想的解决方案。你可以用这个包装整个事情:

<% if @taxonomies && @taxonomies.any? %>
  #your code goes here
<% end %>

...将检查分类变量的存在,并确保在运行代码之前它不是一个空数组。至于获取服务器上的代码,您必须发布有关部署设置和版本控制的更多信息以回答该问题。