[英]Ruby each do loop 'n' number of times
嗨,我在.erb视图中遇到以下循环问题
<% my_list.each do | list | %>
.. loop stuff.....
<% end %.
这对于循环浏览我的列表很好,但是我只想循环浏览“ my_list”中的前4个项目,而不是整个列表。 我尝试了一些类似的事情:
<% my_list.each do | product | 3.times %>
但似乎没有用,因为我认为我的红宝石知识至少可以说是!
像这样使用Array#take :
<% my_list.take(4).each do | product | %>
从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 | %>
显然,您希望以四个为一组的顺序遍历列表(您确实应该修改问题,因为这是重要的信息)。 很明显,您正在使用Rails。 幸运的是,Rails的in_groups_of
已内置到ActiveSupport中:
<% 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
。
<% my_list[0..3].each do | list | %>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.