erb block ไม่วนซ้ำ

ฉันกำลังพยายามสร้างผลลัพธ์สำหรับเว็บสโตร์โดยใช้บล็อก erb นี้ และฉันต้องการ 4 รูปภาพต่อแถว แต่ตอนนี้สร้างได้เพียง 1 รูปภาพต่อแถวเท่านั้น คำแนะนำใด ๆ ที่จะได้รับการชื่นชมอย่างมาก

<% n = 4 %> 
<% @products.each do |product| %>
<div class="row-fluid"> 
<% if (n%4 == 0) %>
<% end %>
  <div class="span3">
    <%= link_to image_tag(product.images.order(:placement).first.image.url(:medium)), product if product.images.present? %>
    <p class="text-center"><%= link_to product.name, product %></p>
  </div>
  <% if (n%4 == 3) %>
<% end %>
<% n += 1 %>
</div>
<% end %>

person Eric Filkins    schedule 18.10.2013    source แหล่งที่มา


คำตอบ (1)


Ruby จะแบ่งมันออกเป็นสี่กลุ่มสำหรับคุณโดยใช้ Enumerable# แต่ละ_ชิ้น:

<% @products.each_slice(4) do |row| %>
  <div class="row-fluid">
    <% row.each do |product| %>
      <div class="span3">
        <%= link_to image_tag(product.images.order(:placement).first.image.url(:medium)), product if product.images.present? %>
        <p class="text-center"><%= link_to product.name, product %></p>
      </div>
    <% end %>
  </div>
<% end %>
person Jewel    schedule 18.10.2013
comment
เจ๋งมาก ฉันไม่รู้เรื่องนี้เลย ขอบคุณ! - person Eric Filkins; 19.10.2013