@locations = Location.all #current listing all
@locations = Location.slice(5) or Location.split(5)
对于Ruby,我试图将列表拆分为4列,每列限制为5列;然而,切片或分裂似乎都不起作用。任何想法,我可能做错了什么?任何帮助是极大的赞赏。Ruby on Rails将列表拆分成列或将列表切片列表
@locations = Location.all #current listing all
@locations = Location.slice(5) or Location.split(5)
对于Ruby,我试图将列表拆分为4列,每列限制为5列;然而,切片或分裂似乎都不起作用。任何想法,我可能做错了什么?任何帮助是极大的赞赏。Ruby on Rails将列表拆分成列或将列表切片列表
你可能想使用in_groups_of:
http://railscasts.com/episodes/28-in-groups-of
下面是从railscast Ryan Bates的用法示例:
<table>
<% @tasks.in_groups_of(4, false) do |row_tasks| %>
<tr>
<% for task in row_tasks %>
<td><%= task.name %></td>
<% end %>
</tr>
<% end %>
</table>
下面的内容适合您的用途吗?
Location.find_in_batches(batch_size: 5) do |group|
# code to work with these 5 elements
end
find_in_batches产生的记录每批,是由 查找选项作为数组找到。
这工作,但'in_groups_of'可能更适合这个任务。从API(您链接到):此方法仅用于批量处理大量记录,这些记录不会一次装入内存。如果您只需循环少于1000条记录,则最好使用常规查找方法。 – Mischa 2013-05-04 15:44:24
谢谢@shawn!这就是诀窍! – nil 2013-05-04 16:07:28