How to wrap every N elements in parent div in ERB (Rails)?
erb, html, ruby, ruby-on-rails
Solution
How about this:
<% @members.each_slice(3) do |slice| %>
<div class="row">
<% slice.each do |member| %>
<div class="member">
...your markup here
</div>
<% end %>
</div>
<% end %>
Problem
My members index page is simply a list of members, but I'd like every 3 members to be wrapped in a containing div (that will act like a row). So rather than: ``` <div class="member"></div> <div class="member"></div> <div class="member"></div> <div class="member"></div> <div class="member"></div> ``` I need the markup to be: ``` <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> ``` I do have a solution, but I'm not happy with it. I have actually seen a better way to do it in ERB before, but can't find it again. My current code: ``` <div class="row"> <% @members.each do |member| %> <div class="member"><%=member.name%></div> <%= cycle("", "", "</div><div class=\"row\">".html_safe) %> <% end %> </div> ```