如果<h2>2016</h2>
@past_challenges
未包含当前年份,如何显示:deadline
?
<% if @past_challenges_without_deadline_for_current_year %>
<h2>2016</h2>
<% end %>
@past_challenges = current_user.challenges.order("deadline ASC").select{ |challenge| challenge.deadline < Date.current if challenge.deadline.present? }
@past_challenges_by_years = @past_challenges.group_by { |t| t.deadline.beginning_of_year }
@past_challenges_without_deadline_for_current_year = ???
t.date :deadline
<% if @past_challenges_by_years[Date.today.year] ||= [ ] %>
<h2>2016</h2>
<% end %>
2016年重复。希望它只出现一次。
答案 0 :(得分:2)
如果你正在迭代一系列事情并希望每年引入标题,那么最有效的方法是使用group_by
将它们按年分组,就像你在那里一样,然后迭代它数据集。
<% @past_challenges_by_years.each do |year, challenges| %>
<h2><%= year%></h2>
// ...
<% end %>
如有必要,每年都可以通过不同的方式呈现特殊情况。用case
语句打破这些。