0

クラススケジュールがあります。には、特定の に属する@appointments_mondayさまざまなものがあります。appointmentcategory

ここに画像の説明を入力

確かに、うまくいき@appointment.eachません。次のようなものが生成されます。

ここに画像の説明を入力

特定のカテゴリの予定が空になる可能性があるためです。@categories各 を判断するためにループスルーしようとしています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

予定とカテゴリの両方をループする代わりに、カテゴリだけを 1 回繰り返し (予定があるかどうかにかかわらず、カテゴリごとに何かを出力したいため)、そのカテゴリの予定があるかどうかを確認します。

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

selectEnumerableに含まれるメソッドArrayです。

于 2013-09-07T14:42:17.633 に答える