# How to do IN(?) query?

**URL:** <https://www.ruby-forum.com/t/how-to-do-in-query/56925>\
**Category:** Rails\
**Created:** [April 5, 2006, 10:05pm UTC](https://www.ruby-forum.com/t/how-to-do-in-query/56925 "2006-04-05T22:05:23Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![rjlyders](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/58f4c7/32.png) [@rjlyders](https://www.ruby-forum.com/u/rjlyders)\
**Post date:** [April 5, 2006, 10:05pm UTC](https://www.ruby-forum.com/t/how-to-do-in-query/56925/1 "2006-04-05T22:05:23Z")

</div>

I’m trying to do an IN query, where I have an array of user objects  
imaginatively named ‘users’:

:conditions=\>[“user\_id IN (?)”, users.collect{|u| u.id }.join(’,’)]

this ends up with:

… IN(‘1,2,3’) …

Obviously I want this to be:

… IN(1,2,3) …  
or even  
… IN(‘1’, ‘2’, ‘3’) …

How do I get ActiveRecord to stop quoting the whole thing?

I thought passing in the object array itself did the trick - the  
documentation says as such, giving the following example:

Person.find(:all, :conditions =\> [“category IN (?)”, categories])

When I try this, the array is printed and my query looks something like:

IN (’— !ruby/object:User \nattributes: …

Any ideas?

Thanks in advance - I’ll carry on Googling and see what I can turn up!

---

<div class="post-metadata">

**Author:** ![rjlyders](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/58f4c7/32.png) [@rjlyders](https://www.ruby-forum.com/u/rjlyders)\
**Post date:** [April 5, 2006, 10:39pm UTC](https://www.ruby-forum.com/t/how-to-do-in-query/56925/2 "2006-04-05T22:39:10Z")

</div>

If categories is an array of numbers (think user id’s) your second idea  
will work:

users = [1,2,3,4,5]  
Person.find :all, :conditions=\>[‘id IN (?)’, users]

but since you have actual user objects you could simplify and say:

users = [user1, user2, user3]  
Person.find\_all\_by\_id users.map{ |u| user.id }

Hope this helps,

Zach

---

<div class="post-metadata">

**Author:** ![rjlyders](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/58f4c7/32.png) [@rjlyders](https://www.ruby-forum.com/u/rjlyders)\
**Post date:** [April 5, 2006, 11:06pm UTC](https://www.ruby-forum.com/t/how-to-do-in-query/56925/3 "2006-04-05T23:06:59Z")

</div>

Superb - thanks!

Just had to take out the .join(‘,’) and all works a charm.

Thanks again.

–  
R.Livsey

> **[Livsey.org](http://livsey.org)**
>
> I’ve been using Firebase with Ember.js quite a lot recently and have just
> released Fireplace, a library to integrate the two more easily. It

---

<div class="post-metadata">

**Author:** ![rjlyders](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/58f4c7/32.png) [@rjlyders](https://www.ruby-forum.com/u/rjlyders)\
**Post date:** [April 6, 2006, 1:23am UTC](https://www.ruby-forum.com/t/how-to-do-in-query/56925/4 "2006-04-06T01:23:59Z")

</div>

You can also use a handy rails shortcut:

categories.collect { |c| c.id }

Can be written as:

categories.collect(&:id)

[http://dev.rubyonrails.org/browser/trunk/activesupport/lib/active\_support/core\_ext/symbol.rb](http://dev.rubyonrails.org/browser/trunk/activesupport/lib/active_support/core_ext/symbol.rb)

-Jonathan.

---

<div class="post-metadata">

**Author:** ![rjlyders](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/58f4c7/32.png) [@rjlyders](https://www.ruby-forum.com/u/rjlyders)\
**Post date:** [April 6, 2006, 1:24am UTC](https://www.ruby-forum.com/t/how-to-do-in-query/56925/5 "2006-04-06T01:24:00Z")

</div>

User.find(1,2,3,4)

On 4/5/06, Richard L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> [http://livsey.org](http://livsey.org)
> 
> * * *
> 
> Rails mailing list  
> removed\_email\_address@domain.invalid  
> [http://lists.rubyonrails.org/mailman/listinfo/rails](http://lists.rubyonrails.org/mailman/listinfo/rails)

–  
Tobi  
[http://shopify.com](http://shopify.com) - modern e-commerce software  
[http://typo.leetsoft.com](http://typo.leetsoft.com) - Open source weblog engine  
[http://blog.leetsoft.com](http://blog.leetsoft.com) - Technical weblog
