哪种是最佳做法?撰写n个项目行

时间:2014-12-24 13:15:39

标签: ruby-on-rails erb

好的,我的问题是:我该怎么做?我写了这个并且它有效,但我知道它可以改进。

<% 
  index = 0 
  @lessons.each do |lesson| 
    index += 1
    if index % 4 == 1 %><div class="row"><% end %>
      <div class="col-md-3">
        <%= image_tag lesson.image || '/assets/images/lessons-list-thumb-placeholder.png', class: "img-responsive" %>
        <h3><%= lesson.title %></h3>
        <p><%= lesson.difficulty %></p>
        <p><%= l(lesson.date, format: :medium) %> <%= l(lesson.time, format: :standard) %></p>
        <p><%= lesson.teacher %></p>
      </div><%
    if index % 4 == 0 or @lessons.count == index %></div><% end %>
<% end %>

显然这是一种观点。提前谢谢。

2 个答案:

答案 0 :(得分:2)

each_slice怎么办?

<% @lessons.each_slice(4) do |lesson_slice| %>
    <div class="row">
        <% lesson_slice.each do |lesson| %>
            <div class="col-md-3">
                ....
            </div>
        <% end %>
   </div>
<% end %>

答案 1 :(得分:0)

您可以使用每个索引

@lessons.each_with_index do |lesson , index|

  if condition 
  end

end