大量のコンテンツを 3 行でレンダリングしようとしています。ただし、Ruby を使用して要素の現在の位置を特定する方法がわかりません。これは私が持っているものです:
<% Animals.each do | animal | %>
<%= animal.species %>
<% end %>
セット内の 3 番目の動物をヒットするたび<BR>
にテーブルをレンダリングしていた場合、またはを追加できるようにしたいと考えています。</TR><TR>
もちろん、要素の数がnE
3 で割り切れない場合は、テーブルの形式が正しくありません。繰り返しの後に少しチェックして、閉じることができると考えました。
しかし、メソッドで反復されている要素のインデックスを取得する方法はありArray.each
ますか? 私は次のことができるという強い予感を持っています:
<table>
<% Animals.each do | animal | %>
<% if Animals.find_index(animal) / 3 == 0 %>
<tr>
<% end %>
<td><%= animal.species %></td>
<% if Animals.find_index(animal) / 3 == 2 %>
</tr>
<% end %>
</table>
私の唯一のことは、それAnimal
が のサブクラスであるため、これがうまくスケーリングされるかどうか、ましてや への各呼び出しが非常に集中的なメソッドになるActiveRecord::Base
かどうかはわかりません (確認していません) 。find_index
どんな提案でも大歓迎です。