如何在不使用SQL的情况下指定此“WHERE”条件?

时间:2017-03-20 22:43:09

标签: ruby-on-rails rails-activerecord ruby-on-rails-5

我在where()电话中使用以下原始Postgres SQL来查找some_date两天后的记录:

SomeModel.where('date(some_date) - date(NOW()) = 2')

可以在没有原始SQL的情况下使用纯ActiveRecord语法编写吗?

1 个答案:

答案 0 :(得分:2)

这应该有效,但尚未测试过。

SomeModel.where('date(some_date) = ?', 2.days.ago.to_date)
#or
SomeModel.where('some_date::date = ?', 2.days.ago.to_date)

如果你想让它更纯粹,没有date sql函数,我就没有看到它,至少在没有创建db视图的情况下。