2010-10-15 129 views
1

有沒有辦法指定和OR條件?Ruby on rails激活記錄條件

例如:

Message.find(1, :condition => {"profile_id = ? OR sender_id = ?", 2, 2}) 

最後,我要檢查用戶是否發送或接收的消息,但如果我做他們分開我的時候沒有發現的一個記錄拋出一個異常案件。

+1

更換'{}'和'[ ]'和':condition'用':conditions',我想你已經得到了你的OR。不過,我懷疑這只是一個錯字。我錯過了這個問題嗎? – Matchu 2010-10-15 00:26:25

+0

真棒,工作正常。這不是一個錯字我雖然是一個選項哈希?謝謝! – Brian 2010-10-15 00:32:13

+0

選項哈希也可用,但默認爲「AND」操作。使用:condition => {:key_one => val_one,:key_two => val_two}將僅查找與這兩個鍵匹配的元素。 – 2010-10-15 00:36:01

回答

0

你很近!將{} s更改爲[] s並且

Message.find(:first, :condition => ["profile_id = ? OR sender_id = ?", profile_id, sender_id]) 

應該爲您做。

(順便說一下,不要忘了,它也總是可以只使用的find_by_sql的情況下,有沒有一個「足夠聰明的」助手可用電流...)