我有一个Collaboration模型,其中包含一个与Grade |的多态关联学校,与用户的一对多关联
belongs_to :owner, polymorphic: true
belongs_to :user, foreign_key: "teacher_id"
这是我管理可以访问学校或成绩的用户的方式。现在,我需要的是做这样的事情
School.first.teachers
Grade.first.teachers
我认为在成绩/学校模式中它会是这样的
has_many :teachers, through: :collaborations, foreign_key: "teacher_id"
但它似乎不是正确的解决方案。有什么想法吗?
答案 0 :(得分:1)
has_many :collaborations, :as => :owner
has_many :teachers, :through => :collaborations, :source => :user
答案 1 :(得分:0)
您需要建立与协作的多态关联。尝试:
class School < ActiveRecord::Base
has_many :collaborations, :as => :owner
has_many :teachers, :through => :collaborations
end