Ruby Activerecord IN clause

RubyActiverecord

Ruby Problem Overview


I was wondering if anyone knew how to do an "IN" clause in activerecord. Unfortunately, the "IN" clause is pretty much un-googleable so I have to post here. Basically I want to answer a question like this "Give me all the college students that are in these dormitories where the dormitory id is in this array [id array]". I know how to write the query given a single dormitory id, but I don't know how to do it given an array of ids.

Any help is greatly appreciated. I'm sure this is a repost of a question somewhere, so I'll delete this once an answer/better search term is found.

Ruby Solutions


Solution 1 - Ruby

From §3.3.3 Subset Conditions of the Rails Guides:

> If you want to find records using the IN expression you can pass an > array to the conditions hash: > > ruby > Customer.where(orders_count: [1,3,5]) > > > This code will generate SQL like this: > > sql > SELECT * FROM customers WHERE > (customers.orders_count IN (1,3,5)) >

You can also use the arel syntax:

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

will generate the same SQL.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionBlack DynamiteView Question on Stackoverflow
Solution 1 - RubyChen KinnrotView Answer on Stackoverflow