2011-02-08 67 views
1

Rails 2.3.5是否可以檢測Update_all是否成功?

我有一個文件夾模型和一個聯繫人模型。在視圖中,我有一個表單,用單選按鈕刪除文件夾,以便刪除文件夾中的所有聯繫人或將這些聯繫人移動到不同的文件夾(通過選擇)。

在respond_to代碼塊,如果用戶選擇聯繫人移動到一個新的文件夾,我有這樣的代碼:

Contact.update_all({:folder_id => params[:folder_to_move_contacts_to]},['folder_id = ?', "#{params[:folder_to_delete]}"]) 
     folder = Folder.find(params[:folder_to_delete]) 
     folder.destroy 
     flash[:notice] = "SUCCESS: Folder deleted and all contacts moved to new folder." 
     format.html { redirect_to 'new' } 
     format.js 

它的工作原理,但我不知道如何處理失敗的,就像如果數據庫打嗝(如果更新,移動聯繫人,失敗 - 不要刪除該文件夾)。有沒有辦法在執行破壞之前檢測更新是否成功?

實際上(還是比較新的),我也一直在想,爲什麼在Scaffold中一個銷燬方法似乎只是假設銷燬是成功的。

感謝 - 大加讚賞

回答

0

活動記錄會引發一些ActiveRecordError如果數據庫無法進行更新,所以不會進行破壞。

+0

非常感謝您幫助我們找到正確的詞彙。 – Reno 2011-02-08 20:07:32