Det, du vil bruge, er @>
operatør
, som tester om din venstrehåndsværdi indeholder højrehåndsværdien. "Indeholder" virker for både objekter og arrays, så følgende forespørgsel ville fungere:
SELECT * FROM products WHERE specs->'spec_options' @> '["spec1", "spec2"]';
Som jeg tror, du kan transformere til ActiveRecord-kompatibel syntaks som sådan:
scope :with_spec_options, ->(spec_options) {
where("specs->'spec_option' @> ?", spec_options.to_json)
}