[英]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.