Rails使用OR查找活动记录



我想通过执行类似的操作来查找记录

@something=模型。其中(X=1或Y=1)

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

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

您很可能希望在模型中使用where子句,即

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

引号中的内容只是SQL,因此这将生成类似于以下内容的SQL:

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

希望能有所帮助!

ian。

您想要在这里设置哪个:

| 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)))

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

您还可以从Ryan Bates的《Rails3Railscast中的高级查询》中获益匪浅。

最新更新