2014-12-06 49 views
0

未定義的方法`每個」近親: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> 

回答

0

看起來你正在做的是迫使零對象數組,將工作內容,YT不是一個理想的解決方案。你可以用整個事情在此:

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

...這將檢查分類變量的存在,並確保它不運行代碼之前空數組。至於獲取服務器上的代碼,您必須發佈更多關於部署設置和版本控制的信息來回答這個問題。