Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

377
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda