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