Je sais que si je nomme une colonne dans une table "othertablename_id" les rails sauront utiliser cette colonne pour une relation belongs_to ou autre. Si je veux avoir plusieurs ID de la même table, cela ne fonctionnera évidemment pas, parce que j'aurais des noms de colonnes en double. Quelle est la meilleure façon de construire une table qui relie deux lignes de la même table? Comme dans une table de rendez-vous qui concerne exactement deux utilisateurs.Rails table relationnelle avec plusieurs ID de la même table
Répondre
Ah Je l'ai
belongs_to :user_1, :class_name => "User"
belongs_to :user_2, :class_name => "User"
utilisera des colonnes user_1_id et user_2_id respectivement. Les colonnes devraient être nommées quelque chose de plus descriptif bien sûr, mais c'est assez simple.
Un modèle comme:
Appointment
=================
source_user_id
object_user_id
aiderait?
EDIT La lecture du rails bible à la page 361, je tirai ceci:
De nombreux à-plusieurs
... Un produit peut appartenir à plusieurs catégories , et chaque catégorie may contient plusieurs produits. Ceci est un exemple d'une relation many-to-many . C'est comme si chaque côté de la relation contient une collection d'éléments de l'autre côté.
alt text http://img180.imageshack.us/img180/4004/dibujolfa.png
Dans Rails nous exprimons en ajoutant la déclaration has_and_belongs_to_many à les deux modèles. A partir de là dedans, nous abrégeons cette déclaration à « HABTM. » Beaucoup à de nombreuses associations sont symétriques, à la fois des tables jointes déclarent leur association avec chaque autre en utilisant « HABTM. »
Dans la base de données, plusieurs associations sont implémentées en utilisant une table de jointure intermédiaire . Il contient paires de clés étrangères reliant les deux tables cibles . Active Record suppose que le nom de cette table de jointure est la concaténation des deux tables cibles dans l'ordre alphabétique. Dans notre exemple , nous avons joint les catégories de la table aux produits de la table, donc Active Record recherchera une table jointe nommée categories_products.
Donc, je pense que tout ce que vous avez à faire, est d'utiliser la déclaration has_and_belongs_to_many.
alors comment puis-je dire aux rails d'utiliser ces colonnes dans les relations. (belongs_to: user, PROBABLY QUELQUE CHOSE ICI DROIT?) –
merci, et ce que vous dites est vrai, mais cela ne résout pas le problème que j'avais en tête.J'ai besoin de distinguer les deux lignes qui sont désignées comme des propriétés séparées. Encore une fois, merci bien. –
- 1. Ruby On Rails - plusieurs à plusieurs entre la même table
- 2. importer des données d'une autre table avec la même id
- 3. Plusieurs fichiers HBM avec plusieurs classes pour la même table
- 4. Recherche de la même table de correspondance avec plusieurs colonnes
- 5. Relation plusieurs-à-plusieurs avec la même table (Ruby on Rails)
- 6. -à-plusieurs sur la même table avec objet d'association
- 7. disperser la structure relationnelle de la table MySQL
- 8. Plusieurs jointures à la même table avec Entity Framework
- 9. Rails (ActiveRecord) plusieurs à plusieurs table
- 10. Table avec plusieurs langues
- 11. Joindre une table avec lui-même via plusieurs-à-plusieurs dans Rails
- 12. Comment mettre à jour une table relationnelle?
- 13. FK sur la même table
- 14. Références à la même table
- 15. SELECT JOIN dans la même table SUR plusieurs lignes
- 16. Comment définir une table client avec plusieurs numéros de téléphone? - Conception de base de données relationnelle
- 17. MySQL joindre plusieurs colonnes de la même table
- 18. comte sur la même table
- 19. mappage un à plusieurs dans la même table dans Hibernate
- 20. Comment puis-je appliquer plusieurs textes de validation de table à la même table dans Access?
- 21. codeigniter plusieurs conditions de jointure sur la même table
- 22. Insérer des insertions dans la même table
- 23. Référence de la table avec deux clés étrangères différentes à la même table dans Kohana ORM
- 24. Joindre plusieurs fois à la même table en utilisant LLBLGen
- 25. SÉLECTIONNEZ DANS la même table
- 26. mySQL requêtes JOIN même table
- 27. Table MySQL -> Pouvez-vous retourner la même ligne plusieurs fois, dans la même requête?
- 28. Rails d'association pour deux clés étrangères pour la même table dans une table
- 29. SELECT de deux même table avec Intersection
- 30. Beaucoup à plusieurs relation sur la même table
Que faire si vous devez configurer une requête avec le nombre de jointures "n" à la même table? Je voudrais faire cette même action, mais avec "n" nombre de jointures, donc je voudrais quelque chose d'un peu plus élégant. –
Nice, mec - c'est 2016, et cela m'aide encore. – skwidbreth