我試圖渲染大量的三行內容。但是,我不確定如何確定使用Ruby的元素的當前位置。這是我有:確定Array.each中元素的索引
<% 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
將是一個超強的方法。歡迎任何建議。
'Array#each_with_index' – 2012-07-26 18:02:46
我正在使用Ruby 1.9.3,並且根據http://apidock.com/ruby/Enumerable/Enumerator/each_with_index該方法在該版本中不可用。 但是,這將完成這項工作! – jackyalcine 2012-07-26 18:10:46
該方法可用。它只是[移動](http://apidock.com/ruby/Enumerable/each_with_index)到Enumerable的不同部分,由於'Array'從它繼承,該方法仍可用於'Array'。 – 2012-07-26 18:19:39