在几列中动态划分数组

时间:2010-12-29 13:10:38

标签: html ruby-on-rails css

我在Ruby on Rails 2.3.8上工作,我有一组类别。所以,我想将它们列在每行三列中,每组10个,并根据需要包含尽可能多的行。类别的数量可以改变,因此功能应该是动态的。

是否有“铁路方式”来实现这一目标?或者哪种方式最好?

2 个答案:

答案 0 :(得分:3)

看一下以下的railscasts剧集:

http://railscasts.com/episodes/28-in-groups-of

“in_groups_of”方法应该是您所需要的:

>> [1,2,3,4,5,6,7].in_groups_of(2, false)
=> [[1, 2], [3, 4], [5, 6], [7]]

in_groups_of的文档可在以下网址找到:

http://railsbrain.com/api/rails-2.3.2/doc/index.html?a=M001423&name=in_groups_of

答案 1 :(得分:1)

不知道它是否是“轨道方式”,但肯定是“我的方式”;)

# in controller
@categories = Category.all

# in view
<table>
  <% @categories.each_with_index do |cat, index| %>
    <%= "<tr>" if index % 30 == 0 %>
    <%= "<td>" if index % 10 == 0 %>
    <%= cat.name %>
    <%= "</td>" if (index + 1) % 10 == 0 || index + 1 == @categories.size %>
    <%= "</tr>" if (index + 1) % 30 == 0 || index + 1 == @categories.size %>
  <% end %>
</table>

如果您要切换到Rails 3,则必须在raw内放置任何HTML标记之前添加<%= %>