如何在ERB(Rails)中包装父div中的每N个元素?

tyb*_*103 8 html ruby ruby-on-rails erb

我的成员索引页面只是一个成员列表,但我希望每个3个成员都包含在一个包含div(它将像一行)中.所以而不是:

<div class="member"></div>
<div class="member"></div>
<div class="member"></div>
<div class="member"></div>
<div class="member"></div>
Run Code Online (Sandbox Code Playgroud)

我需要标记为:

<div class="row">
  <div class="member"></div>
  <div class="member"></div>
  <div class="member"></div>
</div>
<div class="row">
  <div class="member"></div>
  <div class="member"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

我确实有一个解决方案,但我对此并不满意.我之前已经看到过在ERB中更好的方法,但是再也找不到了.

我目前的代码:

<div class="row">
  <% @members.each do |member| %>
    <div class="member"><%=member.name%></div>
    <%= cycle("", "", "</div><div class=\"row\">".html_safe) %>
  <% end %>
</div>
Run Code Online (Sandbox Code Playgroud)

Har*_*eak 16

这个怎么样:

<% @members.each_slice(3) do |slice| %>
  <div class="row">
    <% slice.each do |member| %>
      <div class="member">
      ...your markup here
      </div>
    <% end %>
  </div>
<% end %>
Run Code Online (Sandbox Code Playgroud)

  • 你也可以用in_groups_of(3,false)替换each_slice(3) (3认同)