2010-12-05 7 views
0

J'ai rails 3 où le projet index.html.erb comprend actuellement <td><%= chapter.university_id %></td> alors ce que je veux montrer devrait être <td><%= chapter.university.name %></td> cependant, cela jette actuellement l'exception méthode non définie nom » pour nul: NilClass Fait intéressant, chapitre .foo.name fonctionne pour accéder aux informations d'un autre modèle auquel appartient "chapter". Quelqu'un peut-il aider à standardiser cela?Rails 3 object.belongs_to_id to object.belongs_to.name?

EDIT:

Dans une tentative de reproduire cette erreur d'une autre manière, j'ai changé <td><%= chapter.university.name %></td>-<td><%= chapter.university.id %></td>, dans l'espoir que je pouvais convaincre les rails de me donner university_id de la table des universités, plutôt que les chapitres table. Toujours pas de chance, mais a donné l'erreur Appelé id pour nil, ce qui serait par erreur 4 - si vous voulez vraiment l'id de zéro, utilisez object_id plutôt que la méthode undefined `nom 'pour nil: NilClass que j'avais précédemment été en train de recevoir.

J'ai également vérifié et revérifié le « has_many » relations/« belongs_to » entre chapter et university ainsi que chapter et foo et a trouvé les relations de travail et non-travail soient identiques. Je suis même allé jusqu'à changer l'ordre dans lequel ces relations sont déclarées dans les modèles, sans effet.

Répondre

0

Cela s'avère être un problème avec le chargement des appareils dans la base de données. Les dépendances n'étant pas observées, des données aléatoires étaient placées dans la colonne university_id de la table des universités. Le nettoyage des données incorrectes et leur remplacement par des données saisies manuellement ont résolu le problème.