Railsアプリのhstore列にスコープを作成しようとしています。製品はモデルであり、機能はタイプhstoreの属性です(Postgresql 9.2を使用)。スコープを持つ私のクラスは以下に定義されています:
class Product < ActiveRecord::Base
scope :with_features, lambda {|features| where("foo_id in (?)", features)
上記のスコープは、単一の値を機能として渡す場合にのみ機能します。配列はエラーをスローします。これを以下に示します。
Product.with_features('api')
=> [#<Product id: 1, name: "Sample">]
# so great success
# now with an array
Product.with_features(['api','mobile'])
=> ActiveRecord::StatementInvalid: PG::Error: ERROR: argument of WHERE must be type boolean, not type record
# so no good, this query will work as usual if features isn't of type hstore
Rails 3.2では、配列が関係している場合、postgres hstoreタイプのサポートが制限されているようです(私はhttps://github.com/softa/activerecord-postgres-hstoreを使用しています)。ANDクエリを一緒に追加するために、各ループでいくつかのソリューションを試してきましたが、あまり運がありません。何か案は?