0

我的数据库中有 2 个表,用于国定假日(日期,国家 ID)和一个用于当地假日(日期,城镇 ID)。我不能将这两个表合并,因为在每种情况下,第二个属性都是不同表的 FK。

因为这 2 种类型的假期将像一个视图一样从相同的视图进行管理,所以我想将这些表映射到一个单一的 rails 模型(日期、id、isNational),其中 isNational 将是一个布尔值来指示类型。我怎样才能做到这一点?

提前致谢。

4

2 回答 2

1

你为什么不创建一个唯一的表,例如以假日命名,具有以下属性:

add_column :holidays, :date, :datetime
add_column :holidays, :is_national, :boolean, default: false
于 2012-06-25T09:09:59.337 回答
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
于 2012-06-25T09:08:59.680 回答