我有这些元素的哈希
@ratings = {"PG"=>"1", "PG-13"=>"1"}
我只选择了密钥并将其与,
keys = @ratings.keys.join("','")
我想在select in query中使用它们:
Movies.where(:rating => [keys])
但它只适用于一个简单的值,因为当有更多值时,引号会重复:
SELECT "movies".* FROM "movies" WHERE "movies"."rating" IN ('PG'',''PG-13')
为什么要复制报价?
答案 0 :(得分:1)
使用join
将字符串传递给where子句,生成SQL字符串的图层正在清理输入。我假设您使用ActiveRecord
?如果是这样,那么只需直接传递数组。
Movies.where(:rating => @ratings.keys)