我有一个包含产品和类别的Ruby应用程序。
我想有一个类别索引页面,每个类别显示1张产品照片。
现在,它会显示所有类别的最后产品照片。 (因此,对于16个类别,它会显示每个类别的类别16的产品照片。)
我想我需要修复我存储或调用Products数组的方式。我该怎么做?
代码 -
def index
@categories = Category.all.order('name ASC')
@products = []
@categories.each do |category|
@products = Product.where(category_id: category.id).take(1)
end
end
in categories / index.html.erb
<% @categories.each do |category| %>
<% @products.each do |product| %>
<%= link_to image_tag(product.image), category %>
<% end %>
<%= link_to category.name, category %>
<%= category.description %>
答案 0 :(得分:0)
在index
操作中,更改行:
@products = Product.where(category_id: category.id).take(1)
致:
@products << Product.where(category_id: category.id).take(1)
<强>更新强>
由于take(1)
将返回数组中的对象,因此您只需将其更改为:
@products << Product.where(category_id: category.id).take