【发布时间】:2017-02-22 14:50:43
【问题描述】:
我的项目中的 2 个模型之间存在多对多关联,但想指定它们之间的关联类型。
类似这样:我们有 Teachers et Classrooms,每个 Teachers 有很多 Classrooms,每个 Classroom 有很多 Teachers,如果我们想使用 Trough,我们可以创建一个关系 Teaching。
例如,一位老师在一个教室教数学,而同一位老师在另一个教室教物理,有没有办法在 activerecord 中做类似的事情,如果有很多方法可以做到这一点,这是最好的怎么走?
编辑: 我尝试了这种方法,但我不知道这是否是最佳做法:
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)?我该如何实施?或者我只是向教学添加一个属性并手动设置它而不是使用 STI?最好的方法是什么?
【问题讨论】:
标签: ruby-on-rails activerecord