我想通过做这样的事来找到记录
@something = Model.where(X = 1或Y = 1)
但我尝试的所有事情都不起作用。这应该很容易,但我无法在任何地方找到解决方案。
编辑:更具体一点我试图找到X为1且Y为1的所有记录。
答案 0 :(得分:3)
您很可能希望在模型上使用where子句,即
@something = Model.where('X=1 OR Y=1')
引号内的东西只是SQL,所以这会产生类似于:
的SQLSELECT `model`.* FROM `model_table` WHERE (X = 1 or y = 1)
希望有所帮助!
伊恩。
答案 1 :(得分:2)
您也可以通过Ryan Bates查看Advanced Queries in Rails 3 Railscast获益匪浅。
答案 2 :(得分:2)
你想要在哪里设置:
| 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语句不复杂。