2012-09-19 50 views
0

我試圖讓我的頭在小Rails應用程序中創建Shiping區域的問題。Rails中的自引用映射表

數據庫列出屬於用戶的項目,可以將其出售給其他用戶。要麼全球都可以,並且其原籍國已列在location_countries表中。

我目前看到的方式是將會有一個發貨區域[id,名稱,描述]和映射表[from_country_id,to_country_id,shipping_zone_id],該表引用location_countries表兩次以確定哪些區域規則使用和shipping_zones表(最終引用定價矩陣)。

我遇到的問題是如何在模型文件中表示這個問題: 根據另一個location_country,location_country可以有多個區域。

在我看來,這應該是直接的,但我也覺得我解決這一切都是錯誤的。這個請指點嗎?

回答

1

我建議創建和鏈接的類如下:

class Country 

    has_many :from_mappings, :class_name => "Mapping", :foreign_key => :from_country_id 
    has_many :from_countries, :through => :from_mappings 

    has_many :to_mappings, :class_name => "Mapping", :foreign_key => :to_country_id 
    has_many :to_countries, :through => :to_mappings 
... 

class Mapping 

    belongs_to :shipping_zone 

    belongs_to :from_country, :class_name => "Country", :foreign_key => :to_country_id 
    belongs_to :to_country, :class_name => "Country", :foreign_key => :from_country_id 
... 

認爲這應該是你最好的選擇,但我可能會誤解你的問題的某些部分。

+1

謝謝你(和你的其他答案) - 今天下午我一直在和RoR搏鬥,所以我要去散散步,喝一杯僵硬的飲料,然後我會嘗試一下,讓你知道我是怎麼得到的上... –