我的每个循环都有问题。打印programdetail.name和programdetail.bodypart的行不会打印该值。你也知道如何让这个循环更有效率?我想打印前两个类“奇数”,另外2个非类。等等。
<% @counter = 0 %>
<% @program.programdetails.each do |programdetail| %>
<% @counter = @counter + 1 %>
<% @counter = @counter % 3 %>
<% if (@counter == 0)
@counter -= 1
end %>
<%= '<h3 class="odd"><span class="moduleLabel"> #{programdetail.name}</span><span class="moduleDescription">#{programdetail.bodypart}</span></h3>' if @counter != 0 %>
<%= '<h3><span class="moduleLabel">#{programdetail.name}</span><span class="moduleDescription">#{programdetail.bodypart}</span></h3>' if @counter != 0 %>
<% end %>
答案 0 :(得分:3)
cycle
帮助可能有用,如果你想要奇数/偶数组合,或者在一个集合上:
<% @program.programdetails.each do |programdetail| %>
<h3 class="<%= cycle("odd", "odd", "", "") %>
<span class="moduleLabel"><%= programdetail.name %></span>
<span class="moduleDescription"><%= programdetail.bodypart %></span>
</h3>
<% end %>
修复您的代码:
<% @counter = 0 %>
<% @program.programdetails.each do |programdetail| %>
<% @counter = (@counter % 4) + 1 %>
<h3 class="<%= ((1..2).cover?(@counter))? 'odd': '' %>">
<span class="moduleLabel"><%= programdetail.name %></span>
<span class="moduleDescription"><%= programdetail.bodypart %></span>
</h3>
<% end %>