多态和一对多关联

时间:2013-04-25 18:47:59

标签: ruby-on-rails ruby-on-rails-3 activerecord associations

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

但它似乎不是正确的解决方案。有什么想法吗?

2 个答案:

答案 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