2008-12-29 6 views
1

Après avoir apporté quelques modifications à une application de rails je bricole, le chemin de fer a cessé de fonctionner. La sortie verbeuse donne quelques indices. Je me demande si d'autres personnes ont rencontré cela et s'il existe des conseils pour résoudre ce problème. Est-ce une erreur de modélisation de données? Est-ce un problème avec le chemin de fer? journal d'erreur suit ...Générateur de schéma de chemin de fer échoue avec "NoMethodError"

railroad -vM Loading application environment 
Loading application classes 
Generating models diagram 

...[snip]... 

    Processing Person 
     Processing model association authorships 
     Processing model association person_image 
     Processing model association publications 
/usr/lib/ruby/gems/1.8/gems/activerecord-2.1.2/lib/active_record/reflection.rb:224:in `derive_class_name': You have a nil object when you didn't expect it! (NoMethodError) 
The error occurred while evaluating nil.class_name 
    from /usr/lib/ruby/gems/1.8/gems/activerecord-2.1.2/lib/active_record/reflection.rb:106:in `class_name' 
    from /usr/lib/ruby/gems/1.8/gems/railroad-0.5.0/lib/railroad/models_diagram.rb:134:in `process_association' 
    from /usr/lib/ruby/gems/1.8/gems/railroad-0.5.0/lib/railroad/models_diagram.rb:102:in `process_class' 
    from /usr/lib/ruby/gems/1.8/gems/railroad-0.5.0/lib/railroad/models_diagram.rb:101:in `each' 
    from /usr/lib/ruby/gems/1.8/gems/railroad-0.5.0/lib/railroad/models_diagram.rb:101:in `process_class' 
    from /usr/lib/ruby/gems/1.8/gems/railroad-0.5.0/lib/railroad/models_diagram.rb:27:in `generate' 
    from /usr/lib/ruby/gems/1.8/gems/railroad-0.5.0/lib/railroad/models_diagram.rb:26:in `each' 
    from /usr/lib/ruby/gems/1.8/gems/railroad-0.5.0/lib/railroad/models_diagram.rb:26:in `generate' 
    from /usr/lib/ruby/gems/1.8/gems/railroad-0.5.0/bin/railroad:47 
    from /usr/bin/railroad:19:in `load' 
    from /usr/bin/railroad:19 
+0

Ressemble à un problème avec la classe Person, pourriez-vous poster le code pour cela? –

Répondre

1

Je veux dire que vous avez un parasite « has_many » ou « belongs_to » ou tout autre appel d'association dans votre modèle personne ...

Je suis deviner votre modèle ressemble à quelque chose comme

class Person 
    has_many :authorships 
    has_many :images 
    has_many :publications 
    has_many #with nothing after it 
    # the rest 
end 
1

Vous avez probablement un has_many: par l'association qui est spécifiée de manière incorrecte, quelque chose comme

personne has_many: publications,: par => ...,: source => ...

assurez-vous d'avoir la source là-dedans!

Questions connexes