2012-04-16 8 views
49

Мне было интересно, знает ли кто-нибудь, как сделать предложение «IN» в activerecord. К сожалению, предложение «IN» довольно несовместимо, поэтому я должен публиковать здесь. В основном я хочу ответить на такой вопрос: «Дайте мне всех студентов колледжа, которые находятся в этих общежитиях, где id общежития находится в этом массиве [id array]». Я знаю, как написать запрос, учитывая один идентификатор общежития, но я не знаю, как это сделать, учитывая массив идентификаторов.Ruby Activerecord IN пункт

Любая помощь очень ценится. Я уверен, что это часть вопроса где-то, поэтому я удалю это, как только будет найден ответ/лучший поисковый запрос.

ответ

105

От §2.3.3 Subset Conditions of the Rails Guides:

Если вы хотите найти записи, используя выражение IN вы можете передать массив в условиях хэша:

Client.where(:orders_count => [1,3,5]) 

Этот код будет генерировать SQL, как это:

SELECT * FROM clients WHERE (clients.orders_count IN (1,3,5)) 
+0

Возможно, это не стоит проблемы, связанные с пустым массивом. – tokland

Смежные вопросы