2
我們在我們的out_logs控制器中有以下代碼,用於在rails 3.1.3應用程序中保存到兩個表中。爲了確保兩次節省完成或沒有完成,使用交易。在rails 3.1.3中交易的代碼是否良好和最優?
@out_log.transaction do
if @out_log.save && @part.save
redirect_to part_path(@part), :notice => "Saved!"
else
flash.now[:error] = "Not saved!"
render 'new'
end
end
該代碼似乎工作。我們的問題是:
- 上面的代碼是否是交易的良好實踐?
- 在事務循環中有redirect_to和render,這些redirect_to或render會增加事務循環的執行時間,因此會鎖定數據庫太久(我們使用sqlite3)?
非常感謝。
合理,謝謝。 – user938363 2012-04-22 13:54:02