-1

在使用 Rails 3.2.15 的政治分析应用程序中,我有一个 Candidate 模型和一个 District 模型。这是我要建模的关系的细分:

  1. 候选人属于地区,因为他们在特定地区竞选公职。
  2. 一名或多名候选人也可以在他们的选区任职。
  3. 一位现任者是该区的“主要现任者”。

我是这样想的:

class District
  has_many :candidates
  has_many :candidates, :through => :incumbencies
end

class Candidate
  belongs_to: District
end

class Incumbency
  belongs_to :district
  belongs_to :candidate
  # This model has a boolean attribute :is_primary to distinguish primary incumbencies
end

这是正确的方法,还是我会遇到问题?谢谢你的帮助。

编辑:

这是一个澄清的例子:

在 1 区

  • 候选人 1 是主要在职者
  • 候选人 2 现任
  • 候选人 3 是候选人
  • 候选人 4 是候选人

在第 2 区

  • 候选人 5 是候选人
  • 候选人6是候选人

在第 3 区

  • 候选人 7 是主要在职者
  • 候选人 8 是候选人
4

1 回答 1

0

一切看起来都井井有条,但我认为 Incumbencies belongs_to :candidates 可能存在问题,但候选人没有任何在职人员。我认为如果你有它可能会更好:

class District
  has_many :candidates
  has_many :incumbencies, :through => :candidates
end

class Candidate
  belongs_to :district
  has_one :incumbency
end

class Incumbency
  belongs_to :district
  belongs_to :candidate
  # This model has a boolean attribute :is_primary to distinguish primary incumbencies
end

我可能不正确地理解您的关系,但似乎候选人可以有或没有单一的在职,而且该地区有很多候选人,其中一些是在职的。

于 2013-11-13T18:06:40.450 回答