Global Exception handler

Peter De Berdt
Thu, 16 Aug 2007 14:57:23 -0000

Hi

Is there a way in Ruby or Rails to have a global exception handler to
rescue from a StaleObject exception? I know about
rescue_action_in_public, but I don''t know how to get the object the
exception occurred on.

For example, while updating a record identified as @my_record, a
StaleObject exception is thrown. I would like to implement a global
way of grabbing the class variable in the exception handling and
automatically comparing all the attributes from params[:my_record] to
@my_record.
If the record has become stale on attributes that weren''t changed by
the user (i.e. user 1 changed field "title", while user 2 only
changed field "summary"), although the record has become stale,
updating the record with the updated fields on the newer version of
the record doesn''t need additional user intervention. If the
attributes changed by both users are identical, it would be handled
differently.

I know I''m simplifying things a bit, but I think you pretty much get
the picture.

I just want to avoid having to repeat myself all the time:
begin
    ...
rescue ActiveRecord::StaleObjectError
    if automatically_handlestaleobject(@my_record)
       redirect_to ...
    else
       render "a_layout_or_even_rjs_to_let_the_user_handle_it"
    end
end


Best regards

Peter De Berdt


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---