Module: Airbrake::Rails::ActiveRecord
- Defined in:
- lib/airbrake/rails/active_record.rb
Overview
Rails <4.2 has a bug with regard to swallowing exceptions in the after_commit
and the after_rollback
hooks: it doesn’t bubble up exceptions from there.
This module makes it possible to report exceptions occurring there.
Instance Method Summary collapse
-
#run_callbacks(kind, *args, &block) ⇒ Object
Patches default
run_callbacks
with our version, which is capable of notifying about exceptions.
Instance Method Details
#run_callbacks(kind, *args, &block) ⇒ Object
Patches default run_callbacks
with our version, which is capable of notifying about exceptions.
rubocop:disable Lint/RescueException
20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/airbrake/rails/active_record.rb', line 20 def run_callbacks(kind, *args, &block) # Let the post process handle the exception if it's not a bugged hook. return super unless %i[commit rollback].include?(kind) # Handle the exception ourselves. The 'ex' exception won't be # propagated, therefore we must notify it here. begin super rescue Exception => ex Airbrake.notify(ex) raise ex end end |