我開始了我的第一個rails應用程序,我只想確保我的關聯會像我希望的那樣工作。這裏是我的應用程序模型的概述:鐵軌 - 我的協會是否正確?
class School < ActiveRecord::Base
has_many :courses
has_many :teachers, :through => :courses
has_many :students, :through => :courses
end
class Course < ActiveRecord::Base
belongs_to :school
belongs_to :teacher
has_and_belongs_to_many :students
end
class Teacher < ActiveRecord::Base
has_many :courses
has_many :students, :through => :courses
end
class Student < ActiveRecord::Base
has_and_belongs_to_many :courses
has_many :teachers, :through => :courses
end
有一兩件事至今我已經注意到的是,如果我試圖讓老師和學生在學校都將在同一記錄多次返回。我知道我可以調用uniq,但我寧願不必這樣做。所以我想知道是否有更好的方法可以做到這一點。
我認爲你應該在老師和學生模型中添加school_id,然後建立一個從學校到他們的直接has_many關聯。您將始終通過使用HABTM關聯獲得重複記錄。 – Bigxiang