我有兩種模式:用戶和公司。他們都得到從一種形式創建,我使用的是交易是這樣的:即使公司的驗證的一個失敗Rails事務不驗證錯誤回滾
User.transaction do
@user.save!
@company.user = @user
@company.save!
@user.reload
@user.company = @company
@user.save!
flash[:notice] = "Thank you for your registration."
redirect_to_index
end
用戶獲取保存到數據庫中。我已經嘗試添加ActiveRecord :: RecordInvalid的顯式錯誤處理,但它沒有幫助。我認爲驗證會導致無論如何回滾事務的錯誤。任何幫助是極大的讚賞。
感謝
您使用的是什麼RDBMS?它支持事務(MyISAM vs InnoDB)嗎? – 2010-02-11 16:49:51
啊,我想就是這樣。大多數表是innoDB,但有一些myisam。謝謝 – Shagymoe 2010-02-11 16:59:12
參見http://stackoverflow.com/questions/2481806/how-do-i-get-save-no-exclamation-point-semantics-in-an-activerecord-transaction – 2010-04-07 22:30:16