Carriles belongs_to asociación, no pueden acceder a los atributos del propietario cuando forma parte de una colección?

StackOverflow https://stackoverflow.com/questions/2411040

  •  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.

¿Fue útil?

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)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top