2010-07-19 4 views
4

Je suis coincé dans cette erreur depuis un certain temps maintenant et ont frappé une impasse.ne peut pas dup NilClass - Erreur

Je reçois cette erreur totalement inutile

can't dup NilClass 

Telle est la situation.

J'ai une classe qui est dans une relation avec une autre. Dites

class Parent 
end 

class Child < Parent 
    unloadable 
    :has_many :parents, :foreign_key => "child" 
end 

L'erreur ne se produit pas lors de la première ouverture. Il se produit la deuxième fois que l'enfant est accédé.

Quelle est la cause exactement cette erreur et est-il une solution?

j'ai parlé de la following link mais il ne permet pas

Mise à jour

J'ai trouvé this

Mais il suggère la même. Mais j'ai un module dans ma bibliothèque. Cela n'a rien à voir avec le modèle.

Répondre

2

Pourquoi vous l'enfant comme marquage unloadable? Y a-t-il une bonne raison à cela? sinon, je supprimerais.

Rails API dit « constantes Unloadable sont supprimées chaque fois les dépendances sont effacées. »

L'erreur se produire lorsque vous modifiez à:

class Child < Parent 
    has_many :parents, :foreign_key => "child" 
end 

Et, j'outrepasserait, mais cela semble plus standard:

class Child 
    belongs_to :parent 
end 

class Parent 
    has_many :children, :dependent=>:destroy 
end 
+0

mais http://rails.rubyonrails.org /classes/ActiveRecord/Associations/ClassMethods.html indique de ne pas utiliser: détruire lors de l'utilisation: has_many.? – ZX12R

+2

Je crois que cela signifie ne pas « belongs_to: parent,: dependent =>: détruire » - dans ce cas, si un parent a 4 enfants, et vous détruire un enfant, l'enfant et le parent seraient détruits, mais les 3 autres enfants restent orphelins. –

Questions connexes