Schienen belongs_to Verein kann nicht Eigentümer Attribute zugreifen, wenn ein Teil einer Sammlung?

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

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

War es hilfreich?

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)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top