Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 在活动记录中为IN运算符定义值数组的正确方法是什么_Ruby_Activerecord - Fatal编程技术网

Ruby 在活动记录中为IN运算符定义值数组的正确方法是什么

Ruby 在活动记录中为IN运算符定义值数组的正确方法是什么,ruby,activerecord,Ruby,Activerecord,我需要在数据中搜索字符串数组中包含值的行。在活动记录中执行此操作的正确方法是什么 例如,假设我有这个数组: ["fluffy", "spot"] 我希望SQL看起来像这样: select * FROM Pets WHERE name IN ('fluffy', 'spot') 以下工作: list = ["fluffy", "spot"].map { |x| "'#{x}'" }.join(', ') Pet.where("name in (#{list})") 显然这是个坏主意。正确的方

我需要在数据中搜索字符串数组中包含值的行。在活动记录中执行此操作的正确方法是什么

例如,假设我有这个数组:

["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对此有特殊的方法

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