Estoy tratando de hacer algo como esto, pero no está funcionando. ¿Cómo haría esto en Rails 3?Cómo encontrar find() con includes() en Rails 3
Student.find(12).includes(:teacher)
Estoy tratando de hacer algo como esto, pero no está funcionando. ¿Cómo haría esto en Rails 3?Cómo encontrar find() con includes() en Rails 3
Student.find(12).includes(:teacher)
Sólo hay que tener más cuidado con el orden de los métodos en este caso:
Student.includes(:teacher).find(12)
usted podría intentar "donde" en lugar de "encontrar":
Student.includes(:teacher).where(:id => 12)
; (no, eso tampoco funciona – 99miles
Intenté algo similar en uno de mis modelos y funcionó en Rails 3, ¿está seguro de que tiene configuradas las relaciones "belongs_to" y "has_many"? –
Sí, es muy extraño b/c funciona bien cuando pongo el include en el método to_json, por lo que parece que todo está bien configurado . – 99miles
Student.includes(:teacher).where(:id => 12)
debería funcionar.
¿Podemos ver sus modelos?
vieja pregunta que sé, pero por si acaso esto ayude a alguien ...
Hacer algo como @student = Student.includes(:teacher).where(:id => 12)
devuelve una matriz y así a continuación, utilizando algo como @student.id
no funciona.
su lugar se podría hacer:
@student = Student.includes(:teacher).where(:id => 12).first
Aunque Student.includes(:teacher).find(12)
debería funcionar, pero se puede utilizar la versión where
si es necesario buscar por otros múltiples campos /.
que no parece funcionar. – 99miles
Bueno, ¿qué está haciendo? Siempre puedes usar el método anterior: 'Student.find (12,: include =>: teacher)' –
Obtiene el registro en id 12, pero sin incluir. La forma "antigua" ya no funciona en 3.0. Puedo hacer que funcione de esta manera Student.find_by_id (12) .to_json (: include =>: teacher) pero eso no es lo que quiero – 99miles