繁体   English   中英

Rails 使用 OR 查找活动记录

[英]Rails finding an active record using OR

我想通过做这样的事情来找到记录

@something = Model.where(X=1 或 Y=1)

但是我尝试的所有东西都不起作用。 这应该很容易,但我无法在任何地方找到解决方案。

编辑:更具体地说,我试图找到 X 为 1 且 Y 为 1 的所有记录。

您很可能希望在 model 上使用 where 子句,即

@something = Model.where('X=1 OR Y=1')

引号内的内容只是 SQL,因此这将生成 SQL,如下所示:

SELECT `model`.* FROM `model_table` WHERE (X = 1 or y = 1)

希望有帮助!

伊恩

查看 Ryan Bates 撰写的Rails 3 Railscast 中的高级查询也可能使您受益匪浅。

您想要这里的哪一套:

| id | x | y |
|  1 | 1 | 0 |
|  2 | 0 | 1 |
|  3 | 1 | 1 |

如果您只想要 3 个: Model.where(:x => 1, :y => 1)

如果你想要 1、2 和 3:

tab=Model.arel_table; Model.where(tab[:x].eq(1).or(tab[:y].eq(1)))

甚至: Model.where(["x=? OR y=?",1,1])如果您的 OR 语句不复杂。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM