J'essaie de créer une relation quelque peu complexe dans Rails, et j'ai du mal à trouver la meilleure façon de le faire. J'ai une table Utilisateurs dans laquelle chaque utilisateur agit comme un enseignant et un étudiant. Je voudrais avoir un has_many "étudiants" (qui sont aussi juste des utilisateurs) et un has_many "enseignants" (qui sont aussi juste des utilisateurs). Je ne veux pas faire de sous-classement ou d'héritage de table unique. Je veux juste deux many_to_many différents entre les utilisateurs. Quelle est la meilleure façon de procéder? Est-ce une mauvaise idée à faire? Y a-t-il une meilleure solution?Ruby On Rails - plusieurs à plusieurs entre la même table
0
A
Répondre
5
vous devriez être en mesure de configurer un modèle d'affectation et l'utiliser comme vous le feriez pour tout autre many-to-many:
class User < ActiveRecord::Base
has_many :student_teacher_assignments, :class_name => "StudentTeacherAssignment", :foreign_key => "student_id"
has_many :teachers, :through => :student_teacher_assignments
has_many :teacher_student_assignments, :class_name => "StudentTeacherAssignment", :foreign_key => "teacher_id"
has_many :students, :through => :teacher_student_assignments
end
class StudentTeacherAssignment < ActiveRecord::Base
belongs_to :student, :class_name => "User"
belongs_to :teacher, :class_name => "User"
end
je changerais les noms des affectations d'être un peu moins similaire et plus significatif, mais le concept devrait rester le même
+0
Ahhh, c'est à peu près ce que j'essayais de faire, mais je me trompais légèrement. Cela fonctionne très bien. Merci! –
Questions connexes
- 1. Relation plusieurs-à-plusieurs avec la même table (Ruby on Rails)
- 2. Ruby On Rails Relations - Un à plusieurs
- 3. Plusieurs applications avec Ruby on Rails
- 4. ruby on rails relation plusieurs à plusieurs entre les mêmes objets modèles
- 5. Modèle Ruby on rails avec plusieurs parents
- 6. Rails table relationnelle avec plusieurs ID de la même table
- 7. établissement de nombreux à plusieurs associations Ruby on Rails
- 8. Rails (ActiveRecord) plusieurs à plusieurs table
- 9. unique Héritage de Table Ruby on Rails
- 10. Ruby On Rails plusieurs clés primaires composites question
- 11. Comment créer une relation has_many entre deux modèles, avec plusieurs modèles entre? (Ruby on Rails ActiveRecord)
- 12. Ruby on Rails Générateur de table HTML
- 13. Ruby on Rails: plusieurs directives acts_as_list pour la même paire parent-enfant
- 14. Ruby on Rails-vues plusieurs éléments de ligne dynamiquement ajouté
- 15. Récupération et commande de plusieurs tableaux à partir d'ActiveRecord Join table - Ruby on Rails
- 16. plusieurs associations entre le même modèle dans Rails
- 17. Ruby on Rails table de jointure Associations
- 18. Ruby on Rails relations
- 19. rails moyenne entre plusieurs modèles
- 20. Plusieurs fichiers HBM avec plusieurs classes pour la même table
- 21. Beaucoup à plusieurs relation sur la même table
- 22. Environnements de ruby / rails à plusieurs productions
- 23. Joindre une table avec lui-même via plusieurs-à-plusieurs dans Rails
- 24. ruby on rails aide à la pluralisation?
- 25. Ruby on Rails table de jointure relation
- 26. Plusieurs jointures à la même table avec Entity Framework
- 27. Ruby on Rails ActiveRecord: table avec des clés étrangères dans plusieurs autres tables
- 28. Joindre plusieurs fois à la même table en utilisant LLBLGen
- 29. rails plusieurs à plusieurs auto se joindre
- 30. Ruby on Rails Gem
Ce n'est pas une mauvaise idée, et vous suivriez les trucs standard pour many-to-many mais utiliseriez la même classe au lieu d'une autre. Il existe un modificateur pour la relation appelée: class_name ou: class. –