您好我在.erb视图中遇到以下循环问题
<% my_list.each do | list | %>
.. loop stuff.....
<% end %.
这适用于循环浏览我的列表,但我只想循环浏览&#39; my_list&#39;中的前4项。而不是整个清单。我试过了一些像:
<% my_list.each do | product | 3.times %>
但似乎并没有起作用,因为我认为我的红宝石知识至少可以说是有限的!
答案 0 :(得分:5)
像这样使用Array#take:
<% my_list.take(4).each do | product | %>
答案 1 :(得分:2)
从my_list
Array#first获取前4个元素:
<% my_list.first(4).each do | product | %>
使用Array#each_slice对您的数组进行切片
<% my_list.each_slice(4) do | products | %>
<% products.each do | product | %>
答案 2 :(得分:2)
很明显,你想以四个一组的方式遍历你的列表(你真的应该修改你的问题,因为这是一个重要的信息)。很明显你使用的是Rails。幸运的是,Rails在ActiveSupport中内置了in_groups_of
:
<% my_list.in_groups_of(4) do |products| %>
<% products.each do | product | %>
这种方法的一个优点(比each_slice
之类的替代方案)是in_groups_of
将填充结尾以确保始终获得四个组。它默认会填充nil
,但您可以自己指定填充:
<% my_list.in_groups_of(4, " ") do |products| %>
如果您将false
作为打击垫传递,则它根本不会打开,其行为就像each_slice
一样。
答案 3 :(得分:0)
<% my_list[0..3].each do | list | %>