【发布时间】:2017-03-20 22:43:09
【问题描述】:
我在 where() 调用中使用以下原始 Postgres SQL 来查找 some_date 是两天后的记录:
SomeModel.where('date(some_date) - date(NOW()) = 2')
可以使用没有原始 SQL 的纯 ActiveRecord 语法编写吗?
【问题讨论】:
标签: ruby-on-rails rails-activerecord ruby-on-rails-5
我在 where() 调用中使用以下原始 Postgres SQL 来查找 some_date 是两天后的记录:
SomeModel.where('date(some_date) - date(NOW()) = 2')
可以使用没有原始 SQL 的纯 ActiveRecord 语法编写吗?
【问题讨论】:
标签: ruby-on-rails rails-activerecord ruby-on-rails-5
这应该可以,但还没有测试过。
SomeModel.where('date(some_date) = ?', 2.days.ago.to_date)
#or
SomeModel.where('some_date::date = ?', 2.days.ago.to_date)
如果你想让它更纯粹,没有date sql 函数,我看不到它,至少没有创建数据库视图。
【讨论】: