我正在尝试以三行呈现大量内容。但是,我不确定如何使用 Ruby 确定元素的当前位置。这就是我所拥有的:
<% Animals.each do | animal | %>
<%= animal.species %>
<% end %>
我希望能够在每次我们击中集合中的第三只动物时添加一个<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
是否都是超级密集的方法。欢迎任何建议。