這是我目前的設置,使教師與學生關係的後續問題。
用戶模型
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型號
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
看來尷尬的我,因爲teacher_student_links表有三列:用戶,學生,教師。用戶可以有很多老師,他也可以有很多學生。如果我沒有老師專欄,只是假裝「用戶」是一位「老師」,那麼一切都完美無缺。有沒有辦法解決這個問題?
爲什麼你不能在'TeacherStudentLink'模型中擺脫'user_id'列和':user'關聯? –
@cheeseweasel你仍然可以在這種情況下做current_user.teachers? –
是的 - 每個用戶都有一個「老師」和一個「學生」協會。 –