如何使用ActiveRecord创建没有桥表的has_many关系

时间:2015-09-23 20:05:31

标签: ruby-on-rails ruby activerecord orm data-modeling

对不起,这个很难在标题中说出来。所以这就是我想要做的事情。一个研讨会有很多地区。每个区只有一个district_contact(实际上是一个zone_contact_id)。如何使用ActiveRecord建模研讨会和district_contact之间的关系?我希望能够做到这一点:

Workshop.district_contacts

获取实际用户对象的集合。现在,我已经使用一个简短的函数完成了它:

  def district_contacts
    district_ids = []
    self.districts.each do |district|
      if district.contact_id
        district_ids << district.contact_id
      end
    end
    User.find(district_ids)
  end

2 个答案:

答案 0 :(得分:2)

在Workshop模型中定义关联:

has_many :districts
has_many :district_contacts, through: disctricts

答案 1 :(得分:1)

你的模型关联应该是这样的。

class Workshop < ActiveRecord::Base
  has_many :districts
  has_many :district_contacts, through: disctricts
end

class District < ActiveRecord::Base
  belongs_to :workshop
  has_one :district_contract
end