如何围绕所有challenges-border
挑战设置Date.current
?
第一次尝试的问题是边界是围绕每个挑战放置的,但是我希望边界围绕Date.current
的所有挑战。
<% @challenges.each do |challenge| %>
<% if challenge.deadline == Date.current %>
<div class="challenges-border">
<%= challenge.deadline %>: <%= challenge.action %>
</div>
<% else %>
<%= challenge.deadline %>: <%= challenge.action %>
<% end %>
<% end %>
我收到错误deadline
未定义的方法
<% if @challenges.deadline == Date.current %>
<div class="challenges-border">
<% end %>
<% @challenges.each do |challenge| %>
<%= challenge.deadline %>: <%= challenge.action %>
<% end %>
<% if @challenges.deadline == Date.current %>
</div>
<% end %>
这不起作用,因为我希望通过截止日期按降序组织挑战,这意味着Date.current
挑战可能出现在列表的中间,而不是将它们全部列为@todays_challenges
at结束。
<% @challenges.each do |challenge| %>
<%= challenge.deadline %>: <%= challenge.action %>
<% end %>
<div class="challenges-border">
<% @todays_challenges.each do |challenge| %>
<%= challenge.deadline %>: <%= challenge.action %>
<% end %>
</div>
答案 0 :(得分:1)
理想情况下,您可以将@challenge
分为2组,第1组分别为边框,其余为无边框:
临时解决方案
<% current_date = Date.current %>
<% current_challenges = @challenges.select{ |challenge| challenge.deadline == current_date } %>
<% remaining_challenges = @challenges - current_challenges %>
<% current_challenges.each do |challenge| %>
<div class="challenges-border">
<%= challenge.deadline %>: <%= challenge.action %>
</div>
<% end %>
<% remaining_challenges.each do |challenge| %>
<%= challenge.deadline %>: <%= challenge.action %>
<% end %>
重构解决方案
@challenges
分开