I need to search my data for rows who’s value is contained in an array of strings. What is the proper way to do this in Active Record?
For example, say I have this array:
["fluffy", "spot"]
I want the SQL to look something like this:
select * FROM Pets WHERE name IN ('fluffy', 'spot')
The following works:
list = ["fluffy", "spot"].map { |x| "'#{x}'" }.join(', ')
Pet.where("name in (#{list})")
Obviously this is a bad idea. What is the correct method to do this? Is there a way to use parameters in this way, or does Active Record have a special method for this?
1 Answer