使用したいのは@>
> オペレーター
、左側の値に右側の値が含まれているかどうかをテストします。 「含む」はオブジェクトと配列の両方で機能するため、次のクエリが機能します。
SELECT * FROM products WHERE specs->'spec_options' @> '["spec1", "spec2"]';
次のようにActiveRecord互換の構文に変換できると思います:
scope :with_spec_options, ->(spec_options) {
where("specs->'spec_option' @> ?", spec_options.to_json)
}