Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在不使用SQL的情况下指定此“WHERE”条件?_Ruby On Rails_Rails Activerecord_Ruby On Rails 5 - Fatal编程技术网

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()版本。)(这会很好,但我可以没有它生活。除非你知道一个简单的方法。。。