我正在学校申请,要求讲师和学生都需要课程清单,学生的讲师清单和讲师的学生清单。
所以我有三种模式:教职员工,学生和课程。
我对RoR并不陌生,现在协会对我而言最没有意义,但我希望每个员工和学生都可以参加多个课程。所以我认为has_many
和belongs_to
。然后,我希望每个学生都有他/她的讲师列表,因此,has_many :staff, through: :course
与教职员工has_many :student, through: :course
相同。我也想使用关系专栏,说course_code
而不是ID。
staff.rb
has_many :courses
has_many :students, through: :courses
student.rb
has_many :courses
has_many :staff, through: :courses
course.rb
belongs_to :staff
belongs_to :students
如果我想能够@student.course.all
和@student.lecturer.all
,这将是最好的方法吗?
如果您想让学生和讲师都上课,则需要使用多态关联。
https://guides.rubyonrails.org/association_basics.html#polymorphic-associations这是一个指南,告诉您如何实施!
编辑:您不需要使用多态关联,但是它将帮助您烘干代码。另外,请注意使用!
编辑:另外,我认为您需要一个联接表。 (一门课程可以有很多学生,一个学生可以有很多课程)。
在学生模型中,我们有has_many :courses
。因此,您可以使用@student.courses
是正确的,因为一个学生可以选择不同的课程。同样,学生可以参加许多讲座,即@student.lectures
。