如何在每个第4项上向render:partial => @collection添加一个类?

Dan*_*her 3 ruby-on-rails

假设我有16个结果

在每个第4项我需要添加一个类"无边距"(因为左边的每个项目需要一个边距来创建间距,但最后一个这样做会破坏布局,因此需要这个).

最好的方法是什么?

我现在非常喜欢它.

render :partial => @collection

_collection.html.haml
 stuff
Run Code Online (Sandbox Code Playgroud)

有什么东西我可以放在部分中来解决这个问题,还是必须在外面发生?

谢谢.

Sim*_*tti 9

渲染集合时,Rails会创建隐藏索引.在这种情况下,您可以将模块与索引组合以获取结果.

# _partial.html.erb
<div class="<% if (partial_counter % 4) == 0 %>no-margin<% end %>">
  ...
</div>

# action
<%= render => "partial", :collection => @collection %>
Run Code Online (Sandbox Code Playgroud)

更好的是,将逻辑提取到Helper方法中.

注意.柜台的名称是<partial_name>_counter.

  • 这个问题是计数器从0开始...所以这实际上不能尝试为每个第4项添加一些东西.它将它添加到1日,5日,9日等等. (2认同)