我需要在数据中搜索值包含在字符串数组中的行。在Active Record中执行此操作的正确方法是什么?
例如,假设我有这个数组:
["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是否有一个特殊的方法呢?
答案 0 :(得分:2)
list = ["fluffy", "spot"]
Pet.where(:name => list)