PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Consulta Rails (postgres) com array jsonb


O que você deseja usar é o @> operador , que testa se o valor do lado esquerdo contém o valor do lado direito. "Contém" funciona para objetos e matrizes, portanto, a seguinte consulta funcionaria:
SELECT * FROM products WHERE specs->'spec_options' @> '["spec1", "spec2"]';

Que eu acredito que você pode transformar em sintaxe compatível com ActiveRecord assim:
scope :with_spec_options, ->(spec_options) { 
  where("specs->'spec_option' @> ?", spec_options.to_json) 
}