ブロックを含む Rails パーシャルにコレクションを渡す方法。(または、Rails マジックを回避する方法)。
私はこれについて間違った角度から考えているような気がします。誰かが私を正しい方向に向けることができますか?
次のように、2 つのブロックが繰り返されるインデックスがあるとします。
<div class="content">
<table>
<thead>
<tr>
<th>COL1</th>
<th>COL2</th>
<th>COL3</th>
</tr>
</thead>
<tbody>
<% @collectionA.each do |a| %>
<tr>
<td><%= a.col1 %></td>
<td><%= a.col2 %></td>
<td><%= a.col3 %></td>
</tr>
<% end %>
<tr><%= will_paginate @collectionA %></tr>
</tbody>
</table>
<br />
<table>
<thead>
<tr>
<th>COL1</th>
<th>COL2</th>
<th>COL3</th>
</tr>
</thead>
<tbody>
<% @collectionB.each do |b| %>
<tr>
<td><%= b.col1 %></td>
<td><%= b.col2 %></td>
<td><%= b.col3 %></td>
</tr>
<% end %>
<tr><%= will_paginate @collectionA %></tr>
</tbody>
</table>
</div>
DRYing の最初のラウンドは、次のようになります。
...
<tbody>
<%= render :partial => 'collections', :collection => @collectionA %>
</tbody>
<%= will_paginate @collectionA %>
...
<tbody>
<%= render :partial => 'collections', :collection => @collectionb %>
</tbody>
<%= will_paginate @collectionB %>
...
しかしwill_paginate
、パーシャルを ajax 化できるように、パーシャルにも移動する必要がある場合はどうでしょうか。
ブロックが1つしかない場合は、そうします
<tbody>
<%= render :partial => 'collection' %>
</tbody>
そして部分的に
<% @collection.each do |col| %>
STUFF
<% end %>
<%= will_paginate @collection %>
しかし、2 つのブロックがある場合、@collection-A と @collection-B をパーシャルに渡すにはどうすればよいでしょうか?
それとも、私はこれを間違った方法で見ていますか? ご指摘ありがとうございます。