accepts_nested_attributes_for 最近 Rails

accepts_nested_attributes_for in recent Rails

我有一个 Rails 4.1.1 项目;-

MyModel
has_many :sub_models,inverse_of: my_model
accepts_nested_attributes_for :sub_models
end

MySubModel
belongs_to: my_model,inverse_of: :sub_models
validates :my_model_id,presence: true
end 

我正在使用 accepts_nested_attributes 在一次调用中创建父对象和子对象。它的工作非常出色。太棒了,我不需要考虑它,它就是有效。

现在我已经启动了一个 Rails 4.1.8 项目,但类似的代码根本无法运行。似乎在

def create
@myModel = MyModel.new(model_params)
@myModel.save
etc

子对象在父对象之前被保存,因此它爆炸了,因为父键没有被分配。

在 4.1.1 和 4.1.8 之间 Rails 内部有什么变化,以便在 has_many 关系中构建子对象会在主对象被保存之前发生吗?

验证 my_model 而不是 my_model id 的存在。如果对象在那里,它应该通过验证。那么先救父还是子都无所谓