对不起,这个很难在标题中说出来。所以这就是我想要做的事情。一个研讨会有很多地区。每个区只有一个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
答案 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