¿Alguien puede explicar esto?rails seleccionar e incluir
Project.includes([:user, :company])
Esto ejecuta 3 consultas, uno a buscar proyectos, uno para ir a buscar a los usuarios de esos proyectos y uno a buscar empresas.
Project.select("name").includes([:user, :company])
Esto ejecuta 3 consultas e ignora por completo el bit de selección.
Project.select("user.name").includes([:user, :company])
Esto ejecuta 1 consulta con las uniones a la izquierda apropiadas. Y todavía ignora por completo la selección.
Me parece que los rieles ignoran select con includes. Bien, pero ¿por qué cuando pongo un modelo relacionado en seleccionar, ¿se pasa de emitir 3 consultas a emitir 1 consulta?
Tenga en cuenta que la consulta 1 es lo que quiero, simplemente no puedo imaginar que esta es la forma correcta de obtenerla ni por qué funciona, pero no estoy seguro de qué otra manera obtener los resultados en una consulta (. join parece usar INNER JOIN, lo que de hecho no quiero, y cuando especifico manualmente las condiciones de unión para unirme a la gema de búsqueda, estamos utilizando freaks out cuando intenta volver a agregar joins con el mismo nombre).
posible duplicado de [Rieles 3 - seleccionar con Incluir?] (Http://stackoverflow.com/questions/4047833/rails-3-select-with-include) –