Ich habe eine Transaktion, um sicherzustellen, dass zwei Modelle gleichzeitig gespeichert werden.
begin
Recipe.transaction do
@recipe.save!
if @dish
@dish.save!
end
end
rescue
#save failed
flash[:notice] = "recipe.saved = #{@recipe.new_record?}"
render 'form'
else
#save worked
flash[:notice] = 'Recipe added.'
redirect_to(@recipe)
end
Wenn die Validierung für eines der Modelle fehlschlägt, geht es zum Rettungsblock jedoch im Rettungsblock sagt es, dass das Modell kein neuer Datensatz ist. Ich erwartete, dass die Validierung die Transaktion fehlschlagen, so dass das Modellobjekt als ein neuer Datensatz? was ich hier übersehen?