首先,rails中的@books或@planes(来自select(:all))是什么?它是一个阵列吗?一个列表?怎么命名?关于布局和渲染的官方rails指南从未命名过它。
其次,是否有另一种方式来浏览它而不是每个方法?我有一个特定的案例,我需要“手动”浏览结果,我该怎么做?
编辑:
我想这样做:
<table>
<% 3.times do %>
<tr>
<% 4.times do %>
<td>
<%if collection= @collections.next%>
<%= collection.main_image.url(:vignette) %>
<%end%>
</td>
<%end%>
</tr>
<%end%>
</table>
它应该显示12个(不同)集合图片的数组。即使结果中没有12个条目,也会完成数组。
if collection= @collections.next
同时测试下一个条目并分配它。当然它不起作用。
答案 0 :(得分:3)
您可以执行以下操作:
<%- array = (1..12).to_a %>
<table>
<%- array.zip(@collections).each_slice(4) do |collections| %>
<tr>
<%- collections.each do |number, collection| %>
<td><%= collection.main_image.url(:vignette) unless collection.blank? %></td>
<%- end %>
</tr>
<%- end %>
</table>
答案 1 :(得分:1)
使用each_slice
。这样,您可以按行对项目进行分组(如果这是您正在尝试的内容):
collections = (1..20).to_a
collections.each_slice(4) { |collection|
puts "----------------"
puts collection.join(" | ")
}
输出:
----------------
1 | 2 | 3 | 4
----------------
5 | 6 | 7 | 8
----------------
9 | 10 | 11 | 12
----------------
13 | 14 | 15 | 16
----------------
17 | 18 | 19 | 20