Rails belongs_to associazione, non può accedere agli attributi del proprietario quando parte di una collezione?

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

  •  18-09-2019
  •  | 
  •  

Domanda

Ho un oggetto, Palla, che belongs_to a Girl, che può have_many palle. Tutto funziona per la maggior parte, ma se provo a stampare il nome delle ragazze tramite:

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

ottengo il seguente errore:

"undefined method `name' for nil:NilClass"

Il che veramente mi confonde. Se dico b.girl.class, ho capito come un esempio di Girl, bene. Cioè, non è "NillClass".

Non solo, se cerco solo per qualsiasi sfera, e dico

@ball.girl.name

Sono perfettamente bene.

Di cosa si tratta di una collezione di palle che mi sta avvitando su?

Modifica:

In particolare questo sta accadendo a mio avviso. Sto facendo il test ora per vedere se succede nel controller, anche.

È stato utile?

Soluzione

Hai un'istanza di Ball che non ha un Girl associato. Ti consigliamo di controllare per assicurarsi che non sia girl nil prima di accedere il suo attributo name.

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

Altri suggerimenti

dangit, va bene, non importa. Il problema era che per qualche motivo alcuni bilia in realtà non hanno le ragazze (anche se la maggior parte ha fatto, in modo che qualsiasi dato sfera ho provato ha funzionato bene, ma se ho cercato di fare tutto di loro, uno di loro avrebbe fallito, e l'errore di visualizzazione lasciatemi solo io so che qualcosa è andato storto, non dove)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top