0

我是一个全新的开发人员,所以这可能是一个愚蠢的问题。

我正在尝试设置一个 webapp,它将存储地理数据的统计信息。

  • 我有一个名为Stat的模型,其中包含基本统计信息(中位数、方差、平均值等)的字段。
  • 我为每个地理单位CityZipSub-Zip设置了模型

我想知道的是将 Stat 模型与 Cities、Zips 和 Sub-Zips 相关联;也就是说,每个统计模型都属于城市、邮编或子邮编,而地理单位(城市、邮编、子邮编)可以有多个统计信息。

我如何设置关联和迁移来做到这一点?我已经查看了 Rails 指南,但它似乎没有涵盖对象可以属于不同模型(但只有其中一个)的关系。或者我应该以不同的方式设置我的模型?

4

2 回答 2

1

你说:

每个统计模型都属于城市、邮编或子邮编,而地理单位(城市、邮编、子邮编)可以有多个统计信息。

所以我认为你想建立多态关联

使用多态关联,一个模型可以在一个关联上属于多个其他模型。

所以你的联想可能是这样的:

class Stat
  belongs_to :statsable, polymorphic: true
end

class City
  has_many :stats, as: :statsable
end

class Zip
  has_many :stats, as: :statsable
end

class Subzip
  has_many :stats, as: :statsable
end
于 2012-12-05T06:11:14.507 回答
0

这可以通过 rails 关联来完成。以下链接详细说明了这一点,

http://guides.rubyonrails.org/association_basics.html

于 2012-12-05T05:53:47.707 回答