好吧,所以我的标题可能会让人迷惑。我想要做的是循环遍历一个模型集合,对于前两个模型,呈现一个模板,对于下四个模型,呈现一个不同的模板,对于下两个模型,呈现与第一个模型相同的模板,依此类推。
如下所示:
<% ads.each do |ad| %>
<% # if it's 1-2, 7-8, 13-14 and so on render as big' %>
<%= render 'front/home/big_ad', ad: ad %>
<% # if it's 3-6, 9-12, 15-18 and so on render as small' %>
<%= render 'front/home/small_ad', ad: ad %>
<% end %>
<% end %>
实现这一目标的最干净的方法是什么?
发布于 2012-06-27 22:48:21
如果您的组更长,那么您可以使用in_groups_of
命令,并在它们之间交替,但对于这些规范,最简单的方法是:
<% ads.each_with_index do |ad, index| %>
<% if (index % 6 < 2) %>
<%= render 'front/home/big_ad', ad: ad %>
<% else %>
<%= render 'front/home/small_ad', ad: ad %>
<% end %>
<% end %>
https://stackoverflow.com/questions/11228829
复制相似问题