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変数に配列が含まれています。最初のオブジェクトは日付で、2番目のオブジェクトは製品のリストです。

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

。。。したがって、最初productは単に日付であり、日付に基づいてテーブルをレンダリングすることはできません。次に、2番目の製品は、私の(この例では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 に答える