ммм, быстрое решение может быть просто сделать что-то вроде этого
<% @count_diff = @products.divmod(4) >
<ul>
<% @products.each do |product| %>
<li class="box">
<%= link_to product.name, product_path(:id) %></br>
<%= product.price %>
</li>
<% end %>
<% if @count_diff[1] > 0 %>
<% @count_diff[1].each do |empties| %>
<li class="box"> </li>
<% end %>
<% end %>
</ul>
По крайней мере, я думаю, что это правильный код :-) Я все еще учусь сам.но в основном хак, который я предоставил, просто заполнит «пустые» теги li, чтобы сбалансировать все это.Так что если у вас будет 9 произведений, то получится еще 3 пустых ли.
Возможно, существует более "рубиновый" способ сделать это.