У меня есть модель ваучера с истекшим сроком внутри ..

Вот коды:

rails generate model Voucher

rails generate add_expired_date_to_vouchers expired_date:datetime
In voucher index:

<% if voucher.expired_date == Date.today %>
  <p>Your Voucher has Expired</p>
<% else %>
  <%= voucher.expired_date %>
<% end %>

Проблема в том, что если срок действия ваучера истек сегодня, он все еще показывает дату истечения срока действия, а не «Срок действия ваучера истек».

Пожалуйста, помогите мне решить эту проблему ..

Спасибо

0
Garbela 23 Сен 2018 в 11:39

2 ответа

Лучший ответ

Вы сравниваете объект DateTime с Date, который не сработает. Вероятно, вам следует преобразовать DateTime в Date.

< Сильный > Пример:

2.3.7 :006 > a = DateTime.now.to_date
 => Sun, 23 Sep 2018 
2.3.7 :007 > b = Date.today
 => Sun, 23 Sep 2018 
2.3.7 :008 > a == b
 => true 

Итак, приведенный ниже код должен работать

<% if voucher.expired_date.to_date == Date.today %>
  <p>Your Voucher has Expired</p>
<% else %>
  <%= voucher.expired_date %>
<% end %>

Или же

Вам следует сравнить DateTime с DateTime.

<% if voucher.expired_date == DateTime.now %>
  <p>Your Voucher has Expired</p>
<% else %>
  <%= voucher.expired_date %>
<% end %>
0
Pavan 23 Сен 2018 в 09:04

Оператор условия, который вы используете, неверен!

<% if voucher.expired_date >= Date.today %> #if today is a valid day only use >
  <p>Your Voucher has Expired</p>
<% else %>
  <%= voucher.expired_date %>
<% end %>
0
Afsanefda 23 Сен 2018 в 08:52