Ruby on Rails将列表拆分或切片成列

时间:2013-05-04 15:13:47

标签: ruby-on-rails ruby

@locations = Location.all #current listing all

@locations = Location.slice(5) or Location.split(5)

使用Ruby我试图将列表拆分为4列,每列限制为5列;然而,切片或分裂似乎都不起作用。知道我可能做错了什么吗?任何帮助是极大的赞赏。

2 个答案:

答案 0 :(得分:10)

您可能想要使用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>

答案 1 :(得分:2)

以下内容是否符合您的目的?

Location.find_in_batches(batch_size: 5) do |group|
  # code to work with these 5 elements
end
  

find_in_batches生成每个找到的记录   将选项查找为数组。