2009-11-23 7 views
1

J'ai essayé d'utiliser subsonic pour un projet sur lequel je travaille. Tout allait assez bien jusqu'à ce que j'ai rencontré une table de liaison avec une clé primaire composite. C'est une clé composée des clés primaires des deux tables qu'elle joint. Subsonic a échoué à reconnaître les deux clés qui était problématique. J'allais ajuster subsonic pour soutenir les clés composées mais je me suis arrêté et bien que "Peut-être il y a une raison à cela". L'enregistrement normalement actif repose sur un seul champ de clé primaire pour chaque enregistrement, même dans les tables de liens. Mais est-ce nécessaire? Devrais-je abandonner le dossier actif pour ce projet ou continuer avec mes modifications?ActiveRecord fondamentalement incompatible avec les clés composites?

+0

J'ai effectivement terminé mes changements subsoniques qui n'étaient pas aussi difficiles que je l'avais prévu. Cela semble fonctionner pour le moment, mais d'autres tests sont nécessaires. – stimms

+0

Pourrions-nous voir le code que vous avez trouvé? J'ai également rencontré ce problème et je serais content de contourner le problème! –

+0

Il se trouve sur une branche chez github, http://github.com/stimms/SubSonic-3.0 sous la branche compositKeys. – stimms

Répondre

1

Ruby on Rails ne prend pas en charge les clés primaires composites dans l'objet de modèle prêt à l'emploi. Cependant, il existe des plugins qui accomplissent cela, par exemple this.

Vous pouvez avoir une clé primaire composite sur une table de jointure, mais Rails ne crée pas cette clé primaire, vous devez la créer manuellement. Voir this guide.

Questions connexes