我有一个模型,我们会将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
任何人都知道如何防止自动将孩子保存到数据库中?
目标是仅在点击父控制器的更新功能时保存子记录。
答案 0 :(得分:2)
我试图做parent.child = Child.build
之类的事情无济于事。
似乎解决方案是:
parent.build_child
这会创建子记录,应用关联,但尚未将子记录保存到数据库。当你做parent.save时,保存子记录!