0

我是一個全新的開發者,所以這可能是一個愚蠢的問題。如何將模型與多個模型關聯?

我想設置一個web應用程序,它將存儲地理數據的統計信息。

  • 我有一個名爲統計這對於基本統計信息(中位數,方差,平均等)領域模型。
  • 我已經設置模型的每個地理單元郵編子郵編

我想知道的是與城市,拉鍊,和子拉鍊的統計模型關聯;即每個屬性模型都屬於城市,郵政編碼或子郵政編碼,而地理單位(城市,郵政編碼,子郵政編碼)可以具有多個屬性。

如何設置關聯和遷移來執行此操作?我已經瀏覽了Rails指南,但它似乎沒有涵蓋一個對象可以屬於不同模型(但只有其中一個)的關係。或者我應該設置不同的模型?

回答

1

你說:

每一個統計模型屬於任何城市,郵遞,或子拉鍊而 地理單元(市,郵編,子郵編)可以有多個統計。

所以我想你想設置Polymorphic Associations

隨着多態關聯,模型可以屬於多個 其他模式,在單一的關聯。

所以你也許聯想這樣的:

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 
+0

感謝這正是我正在尋找的! – slykat

0

這可以通過rails關聯來完成。 下面的鏈接解釋你這細節,

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

+0

您好,我看過了這份文件,我不知道如何添加的關聯。在City,Zip和Sub-Zip模型中,我相信我使用了** has_one **,但我沒有在** Stat **模型中使用什麼。如果Stat只屬於City,我會使用** belongs_to **,但在這種情況下,它可能屬於許多模型。 – slykat

+0

如果stat和其他模型像城市有多對多的關聯,那麼您必須使用has_and_belongs_to_many關聯。這可以通過連接表來完成。在同一鏈接中查找此內容。 –