我正在使用「where」語法編寫Rails 3 ActiveRecord查詢,它使用SQL IN和SQL OR運算符,並且無法弄清楚如何一起使用它們。Rails 3使用SQL IN和SQL OR運算符的ActiveRecord查詢
此代碼(在我的用戶模型):
Question.where(:user_id => self.friends.ids)
#note: self.friends.ids returns an array of integers
但是這個代碼
Question.where(:user_id => self.friends.ids OR :target => self.friends.usernames)
返回該錯誤
syntax error, unexpected tCONSTANT, expecting ')'
...user_id => self.friends.ids OR :target => self.friends.usern...
不知道如何在Rails中寫這篇文章,或者只是原始的SQL查詢應該是什麼?
謝謝!我使用的確切查詢是:Question.where('target IN(?)OR user_id IN(?)',self.friends.usernames,self.friends.ids) – kateray 2010-11-17 20:23:01
好,我忘記了。我覺得他們應該是=>散列格式中的一種方式。你不應該需要一個字符串模式來在兩個有效的條件之間添加OR,但是誰在乎你。 – 2010-11-17 20:26:48
主動記錄的想法是數據庫不可知的,所以在rails中使用原始sql不應該被認爲是最好的解決方案,除非性能降低,而在這個查詢中情況並非如此。 – nunopolonia 2011-08-08 14:13:40