Как правильно определить массив значений для оператора IN в Active Record? - PullRequest
0 голосов
/ 07 декабря 2010

Мне нужно искать в моих данных строки, значение которых содержится в массиве строк.Как правильно сделать это в Active Record?

Например, скажем, у меня есть этот массив:

["fluffy", "spot"]

Я хочу, чтобы SQL выглядел примерно так:

select * FROM Pets WHERE name IN ('fluffy', 'spot')

Следующие работы:

list = ["fluffy", "spot"].map { |x| "'#{x}'" }.join(', ')
Pet.where("name in (#{list})")

Очевидно, что это плохая идея.Какой правильный способ сделать это?Есть ли способ использовать параметры таким образом, или у Active Record есть специальный метод для этого?

1 Ответ

2 голосов
/ 07 декабря 2010
list = ["fluffy", "spot"]    
Pet.where(:name => list)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...