Est-il possible d'ajouter des références à une colonne différente de la colonne id
?Ajouter des références à une colonne différente de l'ID
Habituellement, quand une relation entre deux modèles (Model1 et Model2) est créé, l'utilisation de model1:references
et model2:references
pour la création du modèle de relation ajoute automatiquement un model1_id
et model2_id
colonne (avec un index et une référence clé étrangère) pour une utilisation dans l'association modèle1/de model2:
rails generate Relationship model1:references model2:references
Say par exemple Model1 = Teacher
et Model2 = Pupil
. Supposons que les enregistrements de Model2 (enregistrements élèves) soient mis à jour de temps en temps avec une tâche rake: les valeurs de ses attributs (par exemple name
et school_credits
) changeraient, en préservant id
et ranking
(1 à 100).
Associez un professeur avec un pupil_id
n'aurait pas beaucoup de sens.
Chaque enseignant devrait être associé aux noms de ses élèves en utilisant comme référence de clé étrangère l'attribut pupil.name
au lieu de pupil.id
.
Est-ce possible?
Quelles options puis-je ajouter à la commande rails generate Relationship
ou à quelle reference dois-je ajouter pour avoir ce résultat?
Si vous associez un élève avec un nom et que le nom de l'élève est changé, comment détermineriez-vous l'association? –
Say id 1 rang 1 est Paul avec 100 crédits, 1d 2 rang 2 est Kevin avec 90 crédits et id 3 rang 3 est Lea avec 80 crédits. Si Léa gagne 30 crédits, ID 1 est mis à jour avec le nom Léa et 110 crédits. Paul et Kevin changent aussi. Si Lea est l'élève de teacher1, teacher1 devrait être associé à Lea et pas à l'id 3. – Asarluhi