Rails在单个表单上更新多个模型

我正在编写一个使用formtastic来管理BusinessUnit模型的表单,但是在创建新的BusinessUnit时,它还必须创建许多其他记录类型。 模型之间的关联如下:

class BusinessUnit < ActiveRecord::Base has_many :business_unit_sites has_many :locations class BusinessUnitSite < ActiveRecord::Base belongs_to :site belongs_to :business_unit class Site < ActiveRecord::Base has_many :locations has_many :business_unit_sites class Location < ActiveRecord::Base belongs_to :business_unit belongs_to :site 

创建BusinessUnit时,还必须使用BusinessUnitSite作为连接表创建站点。 此外,应创建一个位置记录,该记录必须保存新站点记录的外键,这是我遇到问题的地方。

我可以使用嵌套表单创建一个新位置(如下所示),但必须手动创建站点。

      false %>   false %>   "Location Name" %>     

创建位置,站点记录并确保Location保存新创建的站点的外键的最佳方法是什么?

您可能希望对表单中的子对象使用“ fields_for ”方法。

请参阅此相关答案: Rails表单中的多个对象

有关fields_for的更多信息:

http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html

http://apidock.com/rails/ActionView/Helpers/FormHelper/fields_for