Я хочу сделать что-то подобное, но это не работает:
Something.where(:user => "hello" or :user => "bye")
спасибо
Если вы выполняете OR в одном и том же поле, вы должны передать массив:
Something.where(:user => ["hello", "bye"])
В противном случае вам потребуется создать запрос OR SQL:
Something.where("user = ? or user = ?", "hello", "bye")
Вы можете сделать это:
Something.where("user = ? OR user = ?", 'hello', 'bye')
или даже это:
Something.where("user IN (?)", ['hello', 'bye'] )`
В дополнение к существующим ответам Арел на работе:
Something.where(Something.arel_table[:attr].in(["val1", "val2"]))
Использование простой оболочки над Арелом (https://gist.github.com/1333253):
Something.where(Something[:attr] >> ["val1", "val2"])