我還在學習,以發揮創意與Rails和可以利用的最佳實踐提供一些指導以下Rails的關聯關係:Rails的協會:老師學生類
我有三個型號,教師,學生,&類。教師可以教授任何數量的課程,學生可以參加任何課程,而課程只能由一名教師授課,但可以有1-5名學生。
我的第一個假設是使用follwing:
類: belongs_to的老師 的has_many學生
教師: 的has_many:學生通過=>班
學生: 的has_many:教師通過=>類
我不知道這是否合適,我見過加入tabl的建議ES。任何指導將不勝感激 !
更新:鑑於以下有用用戶的反饋,我建議採用以下解決方案。有人可以驗證這一點嗎?由於一個學生可以有很多類和屬於一類,反之亦然,我需要兩個連接表
class ClassRoomEnrollment < ActiveRecord::Base
belongs_to :students
belongs_to :classrooms
end
class ClassRoom < ActiveRecord::Base
belongs_to :teacher
has_many :students through: classroomenrollment
end
class Teacher < ActiveRecord::Base
has_many :students :through => :classrooms
end
class Student < ActiveRecord::Base
has_many :teachers :through => :classrooms
has_many :classrooms through: classroomenrollment
end
您錯過了'Student:has_many:classes'。基本上,學生和班級之間的關係是HABTM。其他一切都很好。 – 2014-11-22 14:21:53
謝謝@Nitish。我是否還必須添加Teacher has_many:classes? – DaynaJuliana 2014-11-22 20:22:17
對於學生來說,has_many:課程取代has_many老師:我添加的班級關係? – DaynaJuliana 2014-11-22 20:29:21