Was Sie verwenden möchten, ist der @>
Betreiber
, die testet, ob Ihr linker Wert den rechten Wert enthält. "Contains" funktioniert sowohl für Objekte als auch für Arrays, also würde die folgende Abfrage funktionieren:
SELECT * FROM products WHERE specs->'spec_options' @> '["spec1", "spec2"]';
Was Sie meiner Meinung nach in ActiveRecord-kompatible Syntax umwandeln können:
scope :with_spec_options, ->(spec_options) {
where("specs->'spec_option' @> ?", spec_options.to_json)
}