Rails - 一次为所有模型添加新记录

时间:2013-07-30 23:38:29

标签: ruby-on-rails database models

假设我有一个名为Building的模型和另一个名为Issue的模型。

Issue belongs_to Building

Building has_many Issues

我有多个Buildings,有许多Issues。现在,我必须一次将每个问题添加到每个建筑物中。

如何同时向所有Issue添加一个Buildings

1 个答案:

答案 0 :(得分:3)

似乎在两个模型中都需要has_and_belongs_to_many关系。并为此创建一个表:

rails g migration create_buildings_issues building_id:integer issue_id:integer

编辑迁移以删除自动索引并添加复合索引:

create_table :buildings_issues, index: false do |t|
  t.references :building
  t.references :issue
end
add_index :buildings_issues, [:building_id, :issue_id]

然后在DB中创建此表:

rake db:migrate

然后您可以向多个建筑物添加问题:

any_issue.buildings << Building.all

或者向任何建筑物添加问题:

any_building.issues << heat_issue