11
votes

Attribut manquant à ActionCord

J'ai des modèles foo et bar . Barre a la colonne foo_id . Lorsque j'appelle bar.foo_id I Obtenir l'erreur Attribut manquant: FOO_ID

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?

merci


1 commentaires

Comment chargez-vous votre barre?


3 Réponses :


2
votes

appelez-vous xxx

ou xxx

sauf si vous avez une variable de classe pour bar , vous Besoin de regarder foo_id sur une instance de barre. J'espère que cela aide. Bravo.


0 commentaires

42
votes

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")


2 commentaires

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.



1
votes

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. ().

L'erreur est suffisamment courante pour avoir gagné une alerte dans les guides de rails: " Soyez prudent parce que ... "


0 commentaires