Carriles belongs_to asociación, no pueden acceder a los atributos del propietario cuando forma parte de una colección?
-
18-09-2019 - |
Pregunta
Tengo un objeto, bola, que belongs_to una chica, que puede have_many bolas. Todo funciona en su mayor parte, pero si se intenta imprimir el nombre de las niñas a través de:
@balls.each do |b|
b.girl.name
end
Me sale el siguiente error:
"undefined method `name' for nil:NilClass"
Lo que realmente me confunde. Si digo b.girl.class, lo entiendo como un ejemplo de la muchacha, muy bien. Es decir, no es "NillClass".
No sólo eso, si a modo de prueba para cualquier bola, y digo
@ball.girl.name
Estoy perfectamente bien.
¿Qué hay en una colección de bolas que me está arruinando?
Editar:
En concreto esto está sucediendo en mi opinión. Estoy haciendo pruebas ahora para ver si sucede en el controlador, también.
Solución
Tiene una instancia de Ball
que no tiene un Girl
asociado. Usted querrá comprobar para asegurarse de que no se girl
nil
antes de acceder a su atributo name
.
@balls.each do |b|
b.girl.name unless b.girl.nil?
end
Otros consejos
dangit, está bien, no importa. El problema fue que por alguna razón algún objeto de la bola en realidad no tienen las niñas (aunque la mayoría lo hizo, por lo que cualquier bola dada Probé funcionado bien, pero si trataba de hacer todo de ellos, uno de ellos sería un fracaso, y el error de vista Sólo me hizo saber que algo salió mal, no dónde)