To, czego chcesz użyć, to @>
operator
, który sprawdza, czy wartość po lewej stronie zawiera wartość po prawej stronie. „Zawiera” działa zarówno dla obiektów, jak i tablic, więc zadziałałoby następujące zapytanie:
SELECT * FROM products WHERE specs->'spec_options' @> '["spec1", "spec2"]';
Który, jak sądzę, można przekształcić w składnię zgodną z ActiveRecord w następujący sposób:
scope :with_spec_options, ->(spec_options) {
where("specs->'spec_option' @> ?", spec_options.to_json)
}