2010-12-06 12 views
0

我需要在數據中搜索數據中包含值的字符串數組。在Active Record中執行此操作的正確方法是什麼?在Active Record中爲IN運算符定義數組值的正確方法是什麼

例如,說我有此數組:

["fluffy", "spot"] 

我想要的SQL看起來是這樣的:

select * FROM Pets WHERE name IN ('fluffy', 'spot') 

以下工作:

list = ["fluffy", "spot"].map { |x| "'#{x}'" }.join(', ') 
Pet.where("name in (#{list})") 

顯然,這是一個壞主意。什麼是正確的方法來做到這一點?有沒有辦法以這種方式使用參數,或者Active Record是否有特殊的方法?

回答

2
list = ["fluffy", "spot"]  
Pet.where(:name => list) 
+0

太棒了。謝謝。 – oillio 2010-12-06 21:23:51

相關問題