我的数据库中有 2 个表,用于国定假日(日期,国家 ID)和一个用于当地假日(日期,城镇 ID)。我不能将这两个表合并,因为在每种情况下,第二个属性都是不同表的 FK。
因为这 2 种类型的假期将像一个视图一样从相同的视图进行管理,所以我想将这些表映射到一个单一的 rails 模型(日期、id、isNational),其中 isNational 将是一个布尔值来指示类型。我怎样才能做到这一点?
提前致谢。
我的数据库中有 2 个表,用于国定假日(日期,国家 ID)和一个用于当地假日(日期,城镇 ID)。我不能将这两个表合并,因为在每种情况下,第二个属性都是不同表的 FK。
因为这 2 种类型的假期将像一个视图一样从相同的视图进行管理,所以我想将这些表映射到一个单一的 rails 模型(日期、id、isNational),其中 isNational 将是一个布尔值来指示类型。我怎样才能做到这一点?
提前致谢。
你为什么不创建一个唯一的表,例如以假日命名,具有以下属性:
add_column :holidays, :date, :datetime
add_column :holidays, :is_national, :boolean, default: false
你想看看多态关系。
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