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

238
Vistas
Encontrar en una matriz de resultados de registros activos

Estoy usando un registro activo para crear una matriz.

 users = User.all.to_a

ahora quiero encontrar más tarde en esta matriz ID de usuario: 1

 users.find(1)

pero no está dando resultado sino devolviendo todo. ¿Cómo puedo buscar en esta matriz de resultados mi identificación de usuario seleccionada? Puedo ver que los usuarios son una array pero con una matriz en cada registro del objeto User .

Si hago lo siguiente

 user.first

devuelve el objeto Usuario, pero quiero buscar, ¿cómo puedo hacerlo? Entiendo que si to_a , funcionará, pero luego creará otra consulta SQL.

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

0

Dado que es una matriz de objetos, debe usar find with block:

 users.find { |user| user.id == 1 }
over 4 years ago · Santiago Trujillo Denunciar

0

User.find(1) es un ActiveRecord::FinderMethod . Pero cuando ya cargó todos los registros en la memoria, esos registros se transforman en instancias de User y se almacenan en una matriz. Por lo tanto, debe usar find o select cuáles se implementan en Array de esta manera:

 users.find { |user| user.id == 1 } #=> returns the first found record users.select { |user| user.id == 1 } #=> returns an array with all found record

Tenga en cuenta que las consultas de la base de datos pueden usar índices eficientes cuando se configuran correctamente. Lo que hace que las consultas a la base de datos sean muy rápidas. Cuando carga todos los registros en la memoria, esos registros deben traducirse a las instancias adecuadas. Y la búsqueda en una matriz no puede usar ningún índice, lo que significa que podría ser (dependiendo del tamaño de la matriz) más lenta que una nueva consulta de base de datos.

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