Ruby on rails 如何将Activerecord find([34183])与条件一起使用

Ruby on rails 如何将Activerecord find([34183])与条件一起使用,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,在ActiveRecordRails中,我们使用find[(a,b)]获取ID在a和b之间的所有行。如何在此函数中添加条件,使“id”列与特定整数匹配 我尝试了下面的代码,但不起作用 User.find([34,183], :conditions => {:id => 4}). 见: 这将生成以下SQL语句: SELECT * FROM users WHERE (users.id BETWEEN '34' AND '183') 要附加另一个ActiveRecordwhereque

在ActiveRecordRails中,我们使用
find[(a,b)]
获取ID在a和b之间的所有行。如何在此函数中添加条件,使“id”列与特定整数匹配

我尝试了下面的代码,但不起作用

User.find([34,183], :conditions => {:id => 4}).
见:

这将生成以下SQL语句:

SELECT * FROM users WHERE (users.id BETWEEN '34' AND '183')
要附加另一个ActiveRecord
where
query的结果,请使用以下方法:


您需要继续,因为find不接受第二个参数。为什么您要尝试查找id在34到183之间且id为4的用户?4不在34和183之间,因此您将找不到任何与之匹配的记录。我一定是误解了你的问题,但不清楚你在找什么。这毫无意义。你不能有一个介于34和183之间的4的ID。@ArupRakshit,我认为这不是一个重复的问题。好的,OP询问如何合并两个不同查询的结果。虽然措辞可能不规则,但在我看来,这是一个不同的问题。你可以给他最后的解决方案
User.where(id:34..183).查找(4)
User.where(id:34..183).where(id:4)
@MrYoshiji为什么需要第二个
where
呢?@ArupRakshit,因为它符合询问者定义的要求,并表明您可以轻松地链接任意多个where语句以感谢您的输入,我不知道4实际上小于34,@ArupRakshit…@zeantsoi我真的不明白,那条链条是怎么工作的(
SELECT * FROM users WHERE (users.id BETWEEN '34' AND '183')
users = User.where(id: 34..183)
user = User.where(id: 4)

users.merge(user)