0

我们有一个课程表。在@appointments_monday中,我们有不同appointment的属于特定的category

在此处输入图像描述

当然,@appointment.each行不通。它会产生类似的东西:

在此处输入图像描述

因为某个类别的某些约会可能是空的。我们试图循环@categories判断 each appointment,但结果是这样的:

在此处输入图像描述

    <% @appointments.each do |appointment| %>
        <% @categories.each do |category| %>
            <% if appointment.category == category %>
              <%= appointment %>  
            <% else %>
                placeholder
            <% end %>    
       <% end %>
    <% end %>

我认为问题在于@categories.each每次都会循环。我们应该如何处理?

4

1 回答 1

2

怎么样,不是循环约会和类别,而是只迭代类别一次(因为你想为每个类别输出一些东西,无论它是否有约会)并检查是否存在具有该类别的任何约会:

<% @categories.each do |category| %>
  <% category_appointments = @appointments.select {|a| a.category == category } %>
  <% if category_appointments.empty? %>
    <%= placeholder %>
  <% else %>
    <%= category_appointments %>
  <% end %>
<% end %>

select是一种方法,Enumerable它包含在Array.

于 2013-09-07T14:42:17.633 回答