Il est une question de suivi de this.autoréférentiel association
Ceci est mon réglage actuel de faire une relation enseignant-élève.
Modèle utilisateur
has_many :teacher_links, :foreign_key => :student_id, :dependent => :destroy, :class_name => "TeacherStudentLink"
has_many :student_links, :foreign_key => :teacher_id, :dependent => :destroy, :class_name => "TeacherStudentLink"
has_many :students, :through => :student_links
has_many :teachers, :through => :teacher_links
TeacherStudentLink Modèle
class TeacherStudentLink < ActiveRecord::Base
attr_accessible :user_id, :student_id, :teacher_id
belongs_to :user
belongs_to :student, :class_name => "User"
belongs_to :teacher, :class_name => "User"
end
Il me semble maladroit parce que la table teacher_student_links a trois colonnes: l'utilisateur, étudiant, enseignant. L'utilisateur peut avoir beaucoup d'enseignants, et il peut aussi avoir beaucoup d'étudiants. Si je n'ai pas la colonne enseignant, et que je prétends simplement que "utilisateur" est un "enseignant", tout fonctionne parfaitement. Y a-t-il un moyen de résoudre ce problème?
Pourquoi ne pas vous débarrasser de la colonne 'user_id' et de l'association': user' sur le modèle 'TeacherStudentLink'? –
@cheeseweasel serais-tu encore capable de faire current_user.teachers dans ce cas? –
Oui sûr - chaque utilisateur aura une association «enseignants» et «étudiants». –