我的数据库中有2个表,国家假日(日期,国家/地区ID)和本地假期(日期,城镇ID)。我不能合并这两个表,因为在每种情况下,第二个属性是不同表的FK。
因为这两种类型的假期将从相同的视图中管理,就像它是一样,我想将这些表映射到单个rails模型(date,id,isNational),其中isNational将是一个布尔值来指示类型。我怎么能做到这一点?
提前致谢。
答案 0 :(得分:1)
为什么不使用以下属性创建一个以exemple Holiday命名的唯一表:
add_column :holidays, :date, :datetime
add_column :holidays, :is_national, :boolean, default: false
答案 1 :(得分: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