好的,所以我的标题可能会令人困惑.我想要做的是循环遍历一组模型,前两个渲染模板,接下来的四个渲染一个不同的模板,然后两个渲染相同的模板,就像第一个模板一样,依此类推.
像这样:
<% 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 %>
Run Code Online (Sandbox Code Playgroud)
什么是最干净的方法来实现这一目标?
Mat*_*tzi 13
如果你的组甚至很长,那么你可以使用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 %>
Run Code Online (Sandbox Code Playgroud)