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