aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--activerecord/lib/active_record/observer.rb10
1 files changed, 3 insertions, 7 deletions
diff --git a/activerecord/lib/active_record/observer.rb b/activerecord/lib/active_record/observer.rb
index a09c392f9d..8b011ad9af 100644
--- a/activerecord/lib/active_record/observer.rb
+++ b/activerecord/lib/active_record/observer.rb
@@ -90,15 +90,11 @@ module ActiveRecord
#
class Observer < ActiveModel::Observer
- def initialize
- super
- observed_descendants.each { |klass| add_observer!(klass) }
- end
-
protected
- def observed_descendants
- observed_classes.map { |klass| klass.descendants }.flatten
+ def observed_classes
+ klasses = super
+ klasses + klasses.map { |klass| klass.descendants }.flatten
end
def add_observer!(klass)