используя OR в рельсах sqlite3 - PullRequest
0 голосов
/ 28 января 2012

Я хочу сделать что-то подобное, но это не работает:

Something.where(:user => "hello" or :user => "bye")

спасибо

Ответы [ 3 ]

4 голосов
/ 28 января 2012

Если вы выполняете OR в одном и том же поле, вы должны передать массив:

Something.where(:user => ["hello", "bye"])

В противном случае вам потребуется создать запрос OR SQL:

Something.where("user = ? or user = ?", "hello", "bye")
1 голос
/ 28 января 2012

Вы можете сделать это:

Something.where("user = ? OR user = ?", 'hello', 'bye')

или даже это:

Something.where("user IN (?)", ['hello', 'bye'] )`
0 голосов
/ 29 января 2012

В дополнение к существующим ответам Арел на работе:

Something.where(Something.arel_table[:attr].in(["val1", "val2"]))

Использование простой оболочки над Арелом (https://gist.github.com/1333253):

Something.where(Something[:attr] >> ["val1", "val2"])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...