From 33d37dfbaa9586e1c2be16bf43d119977b509286 Mon Sep 17 00:00:00 2001 From: Charlie Savage Date: Sun, 8 Oct 2017 21:03:09 -0700 Subject: [PATCH] Add support for after_create_commit, after_update_commit and after_destroy_commit. These were added in Rails 5 as aliases for using after_commit callback only on create, update or delete. --- lib/rails/observers/activerecord/observer.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/rails/observers/activerecord/observer.rb b/lib/rails/observers/activerecord/observer.rb index 5218008..ffe44fe 100644 --- a/lib/rails/observers/activerecord/observer.rb +++ b/lib/rails/observers/activerecord/observer.rb @@ -110,7 +110,9 @@ def define_callbacks(klass) observer = self observer_name = observer.class.name.underscore.gsub('/', '__') - ActiveRecord::Callbacks::CALLBACKS.each do |callback| + callbacks = ActiveRecord::Callbacks::CALLBACKS + [:after_create_commit, :after_update_commit, :after_destroy_commit] + + callbacks.each do |callback| next unless respond_to?(callback) callback_meth = :"_notify_#{observer_name}_for_#{callback}" unless klass.respond_to?(callback_meth)