2015-01-10 89 views
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关系中的子对象?

+0

我通过使用参数减去嵌套的子属性创建主服务器,然后使用整套参数更新主服务器,从而得到了解决方法。但我不应该做这样一个hacky解决方法。我不在Rails 4.1.1中 –

+0

你能提供'model_params'方法吗? – kurenn

+0

验证是否存在my_model而不是my_model标识。如果对象在那里,它应该通过验证。那么父母或孩子是否先保存并不重要。 – w1zeman1p

回答

1

验证是否存在my_model而不是my_model id。如果对象在那里,它应该通过验证。那么父母或孩子是否先保存并不重要。

相关问题