如何在所有@objects(不是每个对象)周围放置边框?

时间:2016-02-19 19:15:42

标签: html css ruby-on-rails ruby

如何围绕所有challenges-border挑战设置Date.current

第一个例子的问题是边界是围绕每个挑战放置的,但我希望边界围绕Date.current的所有挑战。

尝试#1

<% @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 %>

enter image description here

尝试#2

我收到错误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 %>

尝试#3

这不起作用,因为我希望通过截止日期按降序组织挑战,这意味着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>

1 个答案:

答案 0 :(得分:0)

  

我希望将边框放在Date.current

的所有挑战周围
<div class="challenges-border">
  <% @challenges.current.each do |challenge| %>  
    <%= challenge.deadline %>: <%= challenge.action %>
  <% end %>
</div>

<div>
  <% @challenges.not_current.each do |challenge| %>  
    <%= challenge.deadline %>: <%= challenge.action %>
  <% end %>
</div>

class Challenge < ActiveRecord::Base
  scope :current, -> { where(deadline: Date.current) }
  scope :not_current, -> { where.not(deadline: Date.current) }
end