From 6f95c49a15e85c007e9c94c107232f9fee600aa8 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 19 Sep 2005 16:34:34 +0000 Subject: Fixed that Observers didn't observe sub-classes #627 [Florian Weber] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2263 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- activerecord/lib/active_record/observer.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'activerecord/lib') diff --git a/activerecord/lib/active_record/observer.rb b/activerecord/lib/active_record/observer.rb index 74f76efe3f..36a9ec5d3a 100644 --- a/activerecord/lib/active_record/observer.rb +++ b/activerecord/lib/active_record/observer.rb @@ -58,7 +58,9 @@ module ActiveRecord end def initialize - [ observed_class ].flatten.each do |klass| + observed_classes = [ observed_class ].flatten + observed_subclasses_class = observed_classes.collect {|c| c.send(:subclasses) }.flatten! + (observed_classes + observed_subclasses_class).each do |klass| klass.add_observer(self) klass.send(:define_method, :after_find) unless klass.respond_to?(:after_find) end -- cgit v1.2.3