Schienen belongs_to Verein kann nicht Eigentümer Attribute zugreifen, wenn ein Teil einer Sammlung?
-
18-09-2019 - |
Frage
Ich habe ein Objekt, Ball, der ein Mädchen belongs_to, die Kugeln have_many kann. Alles funktioniert in den meisten Fällen, aber wenn ich versuche, aus dem Mädchennamen gedruckt wird über:
@balls.each do |b|
b.girl.name
end
Ich erhalte den folgenden Fehler:
"undefined method `name' for nil:NilClass"
Welche verwirrt mich wirklich. Wenn ich b.girl.class sagen, ich es als Instanz von Mädchen, einfach gut. Das heißt, es ist nicht "NillClass".
Nicht nur das, wenn ich es nur versuchen, für jeden Ball, und sage
@ball.girl.name
Ich bin völlig in Ordnung.
Was ist das über eine Sammlung von Kugeln, die mich nach oben schrauben?
Edit:
Im Einzelnen geschieht dies aus meiner Sicht. Ich mache Tests jetzt zu sehen, ob es in der Steuerung geschieht auch.
Lösung
Sie haben eine Instanz von Ball
, die keine zugehörigen Girl
haben. Sie wollen sicherstellen, um zu überprüfen, dass girl
nicht vor ist nil
ihr name
Attribut Zugriff.
@balls.each do |b|
b.girl.name unless b.girl.nil?
end
Andere Tipps
Dangit, okay, egal. Das Problem war, dass einige Ball-Objekt aus irgendeinem Grund tatsächlich Mädchen nicht haben (obwohl die meisten taten, so dass jede gegebene Kugel habe ich versucht hat gut funktioniert, aber wenn ich versuchte, sie alle zu tun, einer von ihnen scheitern, und die Aussicht Fehler nur lassen Sie mich wissen, dass etwas schief gelaufen ist, nicht wo)