我想要做這樣的Rails的發現使用或活動記錄
@something =東西Model.where來查找記錄(X = 1或Y = 1)
但是,所有的事情我嘗試不工作。這應該很容易,但我無法在任何地方找到解決方案。
編輯:爲了更具體的我想找到的所有記錄,其中X爲1,Y爲1
我想要做這樣的Rails的發現使用或活動記錄
@something =東西Model.where來查找記錄(X = 1或Y = 1)
但是,所有的事情我嘗試不工作。這應該很容易,但我無法在任何地方找到解決方案。
編輯:爲了更具體的我想找到的所有記錄,其中X爲1,Y爲1
哪組在這裏做你想要的:
| 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語句不復雜。
您很可能希望你的模型在這裏使用where子句,即
@something = Model.where('X=1 OR Y=1')
的東西引號內就是SQL,所以這將生成的SQL看起來是這樣的:
SELECT `model`.* FROM `model_table` WHERE (X = 1 or y = 1)
希望幫助!
伊恩。
查看Ryan Bates的Railscast的Advanced Queries in Rails 3可能會對您大有裨益。
你的朋友在哪裏? – apneadiving 2011-05-30 16:23:17
'X = 1或Y = 1'不是特別有意義的陳述。你究竟想要做什麼?如果X是零,則使用Y使用X? – Jits 2011-05-30 16:26:27
我想要X = 1和Y = 1的每一條記錄。 – 2011-05-30 16:31:48