轨道 - 如何在凭证轨道上设置过期日期



>我里面有过期日期的优惠券模型。

以下是代码:

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

问题是: 当代金券已过期时,它仍然显示过期日期,而不是"您的代金券已过期"。

请帮我解决这个问题。

谢谢

您正在将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 %>

您应该将DateTimeDateTime进行比较。

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

您使用的条件运算符不正确!

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

最新更新