如何在RoR中处理三向关联?

问题描述 投票:0回答:2

我正在学校申请,要求讲师和学生都需要课程清单,学生的讲师清单和讲师的学生清单。

所以我有三种模式:教职员工,学生和课程。

我对RoR并不陌生,现在协会对我而言最没有意义,但我希望每个员工和学生都可以参加多个课程。所以我认为has_manybelongs_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,这将是最好的方法吗?

ruby-on-rails associations rails-activerecord
2个回答
0
投票

如果您想让学生和讲师都上课,则需要使用多态关联。

https://guides.rubyonrails.org/association_basics.html#polymorphic-associations这是一个指南,告诉您如何实施!

编辑:您不需要使用多态关联,但是它将帮助您烘干代码。另外,请注意使用!

编辑:另外,我认为您需要一个联接表。 (一门课程可以有很多学生,一个学生可以有很多课程)。


-1
投票

在学生模型中,我们有has_many :courses。因此,您可以使用@student.courses是正确的,因为一个学生可以选择不同的课程。同样,学生可以参加许多讲座,即@student.lectures

© www.soinside.com 2019 - 2024. All rights reserved.