To, co chcete použít, je @>
operátor
, který testuje, zda vaše hodnota na levé straně obsahuje hodnotu na pravé straně. "Obsahuje" funguje pro objekty i pole, takže následující dotaz by fungoval:
SELECT * FROM products WHERE specs->'spec_options' @> '["spec1", "spec2"]';
Věřím, že můžete transformovat do syntaxe kompatibilní s ActiveRecord takto:
scope :with_spec_options, ->(spec_options) {
where("specs->'spec_option' @> ?", spec_options.to_json)
}