How to handle all errors programmatically on saving, updating and deleting records

Hello guys,

I want to know how to handle all errors programmatically when I save, update, and delete on record. For the save method, it will return true or false, but for update method and destroy/delete method they seems not to return any valid information they work successfully or not. Appreciate all your idea....

Thanks Chamnap

Destroy doesn't return true or false afaik, it just instantiates the objects and destroys them, calling all the callbacks.

Update does a find on the id you pass to it, and saves it. If the save fails, the unsaved object is returned, so I guess you can check wether or not the object changed if you want to figure out if the update was a success or not.

So it means there is no way that I handle programmatically?

Of course there is. For update, for instance, the unsaved object is returned, so you can probably do "if myoldobject.eql? mynewobject" for instance.

And for destroy - if it didn't raise anything, it worked.

What is about if I just handle all exception to make these 3 methods like:

begin   User.update(12, :email => "kkk@yahoo.com") # or delete, create   true rescue   false end

What do you think?

Should work, and looks good. Try it =)