我的凭证模型里面有过期日期。
以下是代码:
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 :(得分:0)
您正在将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 %>
答案 1 :(得分:0)
您使用的条件运算符不正确!
<% 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 %>