如何创建&has -one'子记录没有保存到数据库?

时间:2015-04-09 17:12:03

标签: ruby-on-rails

我有一个模型,我们会将Parent与我们称为has_one的模型建立Child关系。

父模型中的完整关系是:

has_one :child, :dependent => :destroy, autosave: false

如果我拨打Parent.new,则在致电save之前,记录不会保存到数据库中。

如果我拨打Child.new,同样的事情。

但是,如果我执行以下任一操作,子记录将自动保存到数据库而不调用save。

parent.child = Child.new

child = Child.new # not saved yet parent.child = child # automatically saved to db

任何人都知道如何防止自动将孩子保存到数据库中?

目标是仅在点击父控制器的更新功能时保存子记录。

1 个答案:

答案 0 :(得分:2)

我试图做parent.child = Child.build之类的事情无济于事。

似乎解决方案是:

parent.build_child

这会创建子记录,应用关联,但尚未将子记录保存到数据库。当你做parent.save时,保存子记录!