-1

我有这些元素的哈希

@ratings = {"PG"=>"1", "PG-13"=>"1"}

我只选择键并将其分开,

keys = @ratings.keys.join("','")

我想在查询中的选择中使用它们:

Movies.where(:rating => [keys])

但它只适用于一个简单的值,因为当有更多时,引号是重复的:

SELECT "movies".* FROM "movies" WHERE "movies"."rating" IN ('PG'',''PG-13')

为什么它重复引用?

4

1 回答 1

1

通过使用,join您将一个字符串传递给您的 where 子句,并且生成 SQL 字符串的层正在清理您的输入。我假设您正在使用ActiveRecord? 如果是这样,那么只需直接传递数组。

Movies.where(:rating => @ratings.keys)
于 2013-08-14T15:19:47.667 回答