2011-02-08 68 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