0

我有一个与 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" 

但这似乎不是正确的解决方案。有任何想法吗?

4

2 回答 2

1
has_many :collaborations, :as => :owner
has_many :teachers, :through => :collaborations, :source => :user
于 2013-04-25T19:01:23.670 回答
0

You need to establish the polymorphic association to collaborations. Try:

class School < ActiveRecord::Base
  has_many :collaborations, :as => :owner
  has_many :teachers, :through => :collaborations
end
于 2013-04-25T19:00:20.337 回答