我有一个带有过期日期时间字段的模型,我一直在将其与 Time.now 进行比较。
现在我的客户希望模型在视图中保留到到期日的午夜。
所以,我认为我需要做的是能够在该字段上调用 end_of_day 方法作为查找的一部分。
像……</p>
Model.where('expiration.end_of_day < ?', Time.now)
这当然是行不通的,也许我只是把这一切都弄错了。
这是在使用 Postgres 的 Rails 3.2 上(我认为是 9.1。它在 Heroku 上)。
我有一个带有过期日期时间字段的模型,我一直在将其与 Time.now 进行比较。
现在我的客户希望模型在视图中保留到到期日的午夜。
所以,我认为我需要做的是能够在该字段上调用 end_of_day 方法作为查找的一部分。
像……</p>
Model.where('expiration.end_of_day < ?', Time.now)
这当然是行不通的,也许我只是把这一切都弄错了。
这是在使用 Postgres 的 Rails 3.2 上(我认为是 9.1。它在 Heroku 上)。
我假设您的expiration列是时间戳而不是日期,这就是问题的根源。我认为以下内容应该适合您:
Model.where('expiration > ?', Time.now.beginning_of_day) # All records which expire today or later
在纯 postgresql 中会是这样的:
expiration < current_date + 1
select current_date;
date
------------
2012-06-01
(1 row)
select '2012-06-01 23:59:59' < current_date + 1;
?column?
----------
t
(1 row)