0

在我的 taxons_controller 我有以下内容:

 @taxon = Taxon.find_by_permalink(params[:id])
 @related_products = @taxon.products.offset(rand(Spree::Product.count)).limit(7).name

我已经测试了这种形式,它正在拉一个随机对象,但是当我把它放在我的显示视图中时:

    <ul>
      <%= @related_products.each do |related_product| %>
      <li><%= related_product.name %></li>
      <% end %>
    </ul>

我在 Spree/taxons#show 中收到 NoMethodError

"Spree::Product" 的未定义方法 `each':String 提取的源代码(第 41 行附近):

     <ul>
    41.   <%= @related_products.each do |related_product| %>
       <li><%= related_product.name %></li>
       <% end %>
    </ul>

我一直在使用 .each 变体,我不明白我做错了什么。谢谢!

4

1 回答 1

1

您正在尝试迭代 a string,而您应该迭代 a array

# Remove the .name at the end
@related_products = @taxon.products.offset(rand(Spree::Product.count)).limit(7).name
@related_products = @taxon.products.offset(rand(Spree::Product.count)).limit(7)
于 2013-03-21T20:27:17.873 回答