我正在使用“ where”语法编写一个Rails 3 ActiveRecord查询,该查询同时使用SQL IN和SQL OR运算符,并且无法弄清楚如何将它们一起使用。
这段代码有效(在我的用户模型中):
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查询应该是什么?
原始SQL
SELECT * FROM table WHERE user_id in (LIST OF friend.ids) OR target in (LIST OF friends.usernames)
每个列表逗号分开。我不太了解Rails ActiveRecord的东西。对于AND,您只需要在这两个条件之间加上一个逗号,但对OR则为idk