Вам не нужно использовать необработанный SQL, просто укажите шаблон в виде строки и добавьте именованные параметры:
Question.where('user_id in (:ids) or target in (:usernames)',
:ids => self.friends.ids, :usernames => self.friends.usernames)
Или позиционные параметры:
Question.where('user_id in (?) or target in (?)',
self.friends.ids, self.friends.usernames)
Вы также можете использовать превосходный камень Squeel , как @erroric указал в своем ответе (блок my { }
необходим только в том случае, если вам нужен доступ к self
или переменным экземпляра):
Question.where { user_id.in(my { self.friends.ids }) |
target.in(my { self.friends.usernames }) }