0

我正在尝试收集Product按updated_at 分组的所有记录,然后为每个日期呈现带有表格的部分视图。

问题是当我处于部分状态时,我得到的是一个哈希数组而不是一个对象列表。

我的控制器:

@products = Product.all.group_by { |product| product.updated_at.to_date}

我的看法index.html.erb

<% @products.each do|products_for_one_day| %>
  <%= render :partial => 'product_table', :locals => { :products => products_for_one_day } %>
<% end %>

我的部分_product_table.html.erb

<table>
  <tr>
    <th>example</th>
  </tr>

  <% products.each do |product| %> 
    <tr>
      <td><%= product.example %></td>
      . . .
    </tr>
  <% end %>
</table>

当我进入这个视图时,我的products变量包含一个数组,其中第一个对象是日期,然后第二个对象是我的产品列表:

[Sun, 16 Dec 2012, [#<Product id: 184, example: "FirstItem"> #<Product id: 191, name: "SecondItem">]]

. . . 所以我的第一个product只是日期,我无法根据日期呈现表格,然后第二个产品是包含我的(在本例中为 2 个)产品的哈希,无论如何我都无法以我想要的方式迭代,因为它们不是 Product 对象(我可以称之为 product.example )。

我该如何纠正这个问题,以便此时我可以使用 Product 对象构建一个表,而不必处理这个奇怪的数组哈希对象?

4

1 回答 1

1

尝试像这样迭代:

<% @products.each do|date, products_for_one_day| %>
  <% render :partial => 'product_table', :locals => { :products => products_for_one_day } %>
<% end %>
于 2012-12-23T20:15:26.603 回答