2011-05-30 48 views
0

我想要做這樣的Rails的發現使用或活動記錄

@something =東西Model.where來查找記錄(X = 1或Y = 1)

但是,所有的事情我嘗試不工作。這應該很容易,但我無法在任何地方找到解決方案。

編輯:爲了更具體的我想找到的所有記錄,其中X爲1,Y爲1

+0

你的朋友在哪裏? – apneadiving 2011-05-30 16:23:17

+0

'X = 1或Y = 1'不是特別有意義的陳述。你究竟想要做什麼?如果X是零,則使用Y使用X? – Jits 2011-05-30 16:26:27

+0

我想要X = 1和Y = 1的每一條記錄。 – 2011-05-30 16:31:48

回答

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語句不復雜。

3

您很可能希望你的模型在這裏使用where子句,即

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

的東西引號內就是SQL,所以這將生成的SQL看起來是這樣的:

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

希望幫助!

伊恩。