Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

372
Vistas
Rails/PSQL: convertir una tabla de columnas en una matriz y buscar si se incluye una subarreglo

Estoy totalmente atascado en este tema y no puedo encontrar ninguna respuesta a mi duda.

Intentaré explicarlo de la mejor manera posible, pero eso es bastante difícil.

Entonces, tengo un primer modelo (Receta), que almacena dentro de los ingredientes de la columna todos los ingredientes dentro de una matriz. También tengo un modelo de Ingredientes, que está conectado a través de una tabla de unión a Receta, que tiene como primera columna los nombres de todos los ingredientes disponibles.

Me gustaría incluir dentro de mi método de búsqueda una consulta que convierta la columna de ingredientes.nombre en una matriz y regrese del método de búsqueda solo aquellas recetas cuya matriz de ingredientes esté completamente contenida en la matriz de ingredientes.nombre.

Probé con esto

 recipes = recipes.joins(:ingrediantizations).where('array_agg('ingredients.name') @> recipe.ingredients')

Pero no está dando el resultado correcto: ingrediantizations es la tabla de unión.

¡Espero que me puedan ayudar!

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Después de un par de días de pensar en esto, finalmente llegué a la solución.

Lo publico para que alguien pueda beneficiarse de él.

El segundo paso puede parecer extraño, pero supongo que es la única forma de crear una matriz con corchetes, como se requiere para las matrices literales en PSQL.

Ingredientes era el atributo que almacenaba los ingredientes en una matriz.

 items = Item.pluck(:name) items = "{#{ items.map {|term| %Q("#{ term }") }.join(",") }}" recipes=recipes.where("ingredients <@?", "#{items}")
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda