我们有课程安排。在@appointments_monday
中,我们有不同的appointment
属于特定的category
:
当然,@appointment.each
不起作用。它会产生类似的东西:
因为某个类别的某些约会可能是空的。我们试图循环遍历@categories
来判断每个appointment
,但结果却是这样的:
<% @appointments.each do |appointment| %>
<% @categories.each do |category| %>
<% if appointment.category == category %>
<%= appointment %>
<% else %>
placeholder
<% end %>
<% end %>
<% end %>
我认为问题在于@categories.each
每次都会循环播放。我们该怎么处理这个?
答案 0 :(得分: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
中。