多对多关系中的关系类型

时间:2017-02-22 14:50:43

标签: ruby-on-rails activerecord

我的项目中有2个模型之间存在多对多的关联,但是想要指定它们之间的关联类型。

这样的事情:我们有教师和教室,每个教师都有很多教室,每个教室都有很多教师,如果我们想要使用Trough,我们可以创建一个关系教学。

例如,教师正在教授数学课堂和同一位教师将物理教学用于另一个课堂,有没有办法在积极的记录中做这样的事情,如果有很多方法可以做到这一点,那就是最好的怎么样?

编辑: 我试过这种方法,我不知道这是不是最好的做法:

Class Teacher < ActiveRecord::Base
    has_many :classrooms, through: :teachings
  end

  Class Teaching < ActiveRecord::Base
    belongs_to :teachers
    belongs_to :classrooms
  end

  Class Classroom < ActiveRecord::Base
    has_many :teachers, through: :teachings
  end

我的想法不是使用教学:我将使用从教学模型继承的欧特模型(例如:数学,物理......) 如果可以在教学关联上添加类型(在关联表上使用STI)?我该如何实现它?或者我只是在Teaching中添加一个属性并手动设置而不是使用STI?这是最好的办法吗?

1 个答案:

答案 0 :(得分:0)

听起来你可以使用另一个名为subject的表。这将允许一个报告,显示哪个教师(teacher_id)在哪个教室(classroom_id)教授哪个科目。