
Consultas avanzadas de ActiveRecord
Query interface, where, joins, includes, eager loading, problema N+1, transactions, locking (optimistic/pessimistic)
1¿Qué método de ActiveRecord recupera un registro por su clave primaria y lanza una excepción si no se encuentra?
¿Qué método de ActiveRecord recupera un registro por su clave primaria y lanza una excepción si no se encuentra?
Respuesta
El método find recupera un registro por su clave primaria y lanza una excepción ActiveRecord::RecordNotFound si el registro no existe. Esto garantiza que el código falle de forma explícita en lugar de continuar con un valor nil. Para evitar la excepción y devolver nil en su lugar, usa find_by(id: value).
2¿Cuál es la diferencia principal entre find_by y where.first en ActiveRecord?
¿Cuál es la diferencia principal entre find_by y where.first en ActiveRecord?
Respuesta
find_by devuelve directamente un único registro o nil, mientras que where.first devuelve una relación ActiveRecord y luego llama a first para obtener el primer resultado. En la práctica, find_by genera una consulta optimizada con LIMIT 1, mientras que where podría cargar más datos antes de seleccionar el primer elemento.
3¿Cómo pasar múltiples condiciones al método where en ActiveRecord?
¿Cómo pasar múltiples condiciones al método where en ActiveRecord?
Respuesta
El método where acepta un hash con múltiples claves para especificar varias condiciones que se combinarán con AND. Por ejemplo, User.where(status: 'active', role: 'admin') genera WHERE status = 'active' AND role = 'admin'. Para condiciones OR, usa or o consultas SQL en bruto.
¿Qué es el problema N+1 en ActiveRecord?
¿Qué método usar para resolver el problema N+1 precargando las asociaciones?
+25 preguntas de entrevista
Otros temas de entrevista Ruby on Rails
Fundamentos de Ruby
Programación orientada a objetos en Ruby
Fundamentos de Rails
Routing & Controllers
Fundamentos de ActiveRecord
Views y plantillas ERB
Asociaciones de ActiveRecord
Formularios Rails
Autenticación y Autorización
Asset Pipeline moderno y frontend
Modo API de Rails
Pruebas con RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
Estrategias de caching
Migraciones avanzadas
Rails Engines y apps modulares
Optimización del rendimiento
Patrones de diseño en Rails
Metaprogramación en Ruby
Seguridad en Rails
GraphQL con Rails
Despliegue y Producción
Monitoring & Logging
Estrategias de actualización de Rails
Domina Ruby on Rails para tu próxima entrevista
Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.
Empieza gratis