J'ai des modèles Gardez à l'esprit que ce n'est pas une erreur de méthode non définie et la colonne est définitivement dans la DB. Quelles sont les causes courantes de cela? P>
merci p> foo code> et
bar code>.
Barre Code> a la colonne
foo_id code>.
Lorsque j'appelle
bar.foo_id code> I Obtenir l'erreur
Attribut manquant: FOO_ID CODE> P>
3 Réponses :
appelez-vous ou p> sauf si vous avez une variable de classe pour bar code>, vous Besoin de regarder
foo_id code> sur une instance de barre. J'espère que cela aide. Bravo. P> P>
Il a probablement quelque chose à voir avec votre méthode forte> forte>? Par exemple, vous avez fait un: Sélectionnez dans une trouvaille:
Foo.find(:all, :select => "firstvar, secondvar")
J'avais default_scope: Inclus => [: Modèle1,: Modèle2] défini .. Au lieu de cela, j'ai utilisé une portée personnalisée avec tous les besoins inclut.
Dans mon cas, la question était que l'objet avait été mis en cache et qu'il utilisait toujours l'ancienne version qui n'avait pas le nouvel attribut. Une fois que le cache a été effacé, les choses fonctionnaient comme prévu.
Cela me arrive de temps en temps. Ma cause est presque toujours une méthode de recherche longue oubliée sur une classe qui spécifie les champs de .select () et l'attribut manquant (souvent ajouté longtemps après que le Finder défini) soit désormais invoqué quelque part dans l'application mais non spécifié dans cela. (). p>
L'erreur est suffisamment courante pour avoir gagné une alerte dans les guides de rails: " Soyez prudent parce que ... " p>
Comment chargez-vous votre barre?