Rails belongs_to association, ne peut pas accéder aux attributs du propriétaire lorsqu'une partie d'une collection?

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

  •  18-09-2019
  •  | 
  •  

Question

J'ai un objet, Ball, qui belongs_to une fille, qui peut have_many balles. Tout fonctionne pour la plupart, mais si je tente d'imprimer le nom des filles via:

@balls.each do |b|
    b.girl.name
end

Je reçois l'erreur suivante:

"undefined method `name' for nil:NilClass"

Ce qui me confond vraiment. Si je dis b.girl.class, je reçois comme une instance de fille, très bien. Autrement dit, ce n'est pas "NillClass".

Non seulement cela, si je viens de l'essayer pour une boule, et dire

@ball.girl.name

Je suis parfaitement bien.

Qu'est-ce d'une collection de balles qui me merdait?

Edit:

Plus précisément ce qui se passe à mon avis. Je fais maintenant des tests pour voir si cela se produit dans le contrôleur, aussi.

Était-ce utile?

La solution

Vous avez une instance de Ball qui ne dispose pas d'un Girl associé. Vous voulez vérifier pour vous assurer que girl ne nil avant d'accéder à son attribut name.

@balls.each do |b|
  b.girl.name unless b.girl.nil? 
end

Autres conseils

Dangit, ok, never mind. La question est que pour une raison quelconque un objet de balle n'ont pas vraiment les filles (même si la plupart ont été, toute bal j'ai essayé travaillé très bien, mais si je tentais de faire tous, l'un d'entre eux serait un échec, et l'erreur de vue ne laissez-moi savoir que quelque chose a mal tourné, pas où)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top