Подтвердить что ты не робот

Статья Ruby Activerecord IN

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

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

4b9b3361

Ответ 1

Из §2.3.3 Условия подмножества направляющих рельсов:

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

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

Этот код будет генерировать SQL следующим образом:

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

Вы также можете использовать синтаксис arel:

Client.where(Client.arel_table[:order_count].in([1,3,5]))

Будет генерировать тот же SQL

Ответ 2

Вы также можете try-

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