Ruby on rails 如何在不使用SQL的情况下指定此“WHERE”条件?
我在我的Ruby on rails 如何在不使用SQL的情况下指定此“WHERE”条件?,ruby-on-rails,rails-activerecord,ruby-on-rails-5,Ruby On Rails,Rails Activerecord,Ruby On Rails 5,我在我的where()调用中使用以下原始Postgres SQL来查找记录,其中some\u date距离现在还有两天: SomeModel.where('date(some_date) - date(NOW()) = 2') 它可以在没有原始SQL的情况下使用纯ActiveRecord语法编写吗?这应该可以,但还没有测试过 SomeModel.where('date(some_date) = ?', 2.days.ago.to_date) #or SomeModel.where('some_
where()
调用中使用以下原始Postgres SQL来查找记录,其中some\u date
距离现在还有两天:
SomeModel.where('date(some_date) - date(NOW()) = 2')
它可以在没有原始SQL的情况下使用纯ActiveRecord语法编写吗?这应该可以,但还没有测试过
SomeModel.where('date(some_date) = ?', 2.days.ago.to_date)
#or
SomeModel.where('some_date::date = ?', 2.days.ago.to_date)
如果您希望它更纯净,没有
date
sql函数,我看不到它,至少在没有创建db视图的情况下是这样。这应该行得通,但我还没有测试过它
SomeModel.where('date(some_date) = ?', 2.days.ago.to_date)
#or
SomeModel.where('some_date::date = ?', 2.days.ago.to_date)
如果您希望它更纯净,没有
date
sql函数,我看不到它,至少在不创建db视图的情况下看不到它。不幸的是,这不适用于接受哈希的where()版本:(这会很好,但我可以没有它生活。除非你知道一个简单的方法…不幸的是,这不适用于需要哈希的where()版本。)(这会很好,但我可以没有它生活。除非你知道一个简单的方法。。。