2012-06-25 70 views
0

我在國家節假日(日期,國家ID)和本地節假日(日期,城鎮ID)的我的數據庫中有2個表。我不能將這兩個表合併,因爲第二個屬性在每種情況下都是FK到不同的表。將模型映射到多個數據庫表

因爲這2種節假日將從相同的視圖管理,如果它是一個,我想映射到一個單一的軌道模型(日期,id,isNational),其中isNational將是一個布爾值指出類型。我怎樣才能做到這一點?

在此先感謝。

回答

0

你想看看多態關係。

Holiday 
# area_type: string, area_id: integer, date: date 
belongs_to :area, :polymorphic => true 

Town 
    has_many :holidays, :as => area 
    belongs_to :country 

    def all_holidays 
    # array of all holidays, both local and national. 
    self.holidays + self.country.holidays 
    end 

Country 
    has_many :holidays, :as => area 
1

你爲什麼不創建一個唯一的表,命名爲爲例假日,具有這些屬性:

add_column :holidays, :date, :datetime 
add_column :holidays, :is_national, :boolean, default: false