0
我有一个Rails 4.1.1项目,; -accepts_nested_attributes_for在最近的Rails
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内部有一些变化,以便在master被保存之前构建has_many关系中的子对象?
我通过使用参数减去嵌套的子属性创建主服务器,然后使用整套参数更新主服务器,从而得到了解决方法。但我不应该做这样一个hacky解决方法。我不在Rails 4.1.1中 –
你能提供'model_params'方法吗? – kurenn
验证是否存在my_model而不是my_model标识。如果对象在那里,它应该通过验证。那么父母或孩子是否先保存并不重要。 – w1zeman1p