我在國家節假日(日期,國家ID)和本地節假日(日期,城鎮ID)的我的數據庫中有2個表。我不能將這兩個表合併,因爲第二個屬性在每種情況下都是FK到不同的表。將模型映射到多個數據庫表
因爲這2種節假日將從相同的視圖管理,如果它是一個,我想映射到一個單一的軌道模型(日期,id,isNational),其中isNational將是一個布爾值指出類型。我怎樣才能做到這一點?
在此先感謝。
我在國家節假日(日期,國家ID)和本地節假日(日期,城鎮ID)的我的數據庫中有2個表。我不能將這兩個表合併,因爲第二個屬性在每種情況下都是FK到不同的表。將模型映射到多個數據庫表
因爲這2種節假日將從相同的視圖管理,如果它是一個,我想映射到一個單一的軌道模型(日期,id,isNational),其中isNational將是一個布爾值指出類型。我怎樣才能做到這一點?
在此先感謝。
你想看看多態關係。
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
你爲什麼不創建一個唯一的表,命名爲爲例假日,具有這些屬性:
add_column :holidays, :date, :datetime
add_column :holidays, :is_national, :boolean, default: false