Commit 6b693f8739d5af251ea70cd147c6b572669b189f

Authored by Marcos Pereira
1 parent 3f84e761
Exists in stable-spb-1.5

Revert "Fixes ActiveRecord relations for descendants"

This reverts commit 6607dc221143955c2b42f967c3e5d4de6948d1e9.
lib/noosfero/core_ext/active_record/reflection.rb
  1 +
1 # on STI classes tike Article and Profile, plugins' extensions 2 # on STI classes tike Article and Profile, plugins' extensions
2 # on associations should be reflected on descendants 3 # on associations should be reflected on descendants
3 module ActiveRecord 4 module ActiveRecord
4 - module Associations  
5 - def association(name) #:nodoc:  
6 - association = association_instance_get(name)  
7 -  
8 - if association.nil?  
9 - reflection = self.class._reflect_on_association(name) 5 + module Reflection
10 6
11 - # Check inheritance chain for possible upstream association  
12 - klass = self.class.superclass  
13 - while reflection.nil? && klass.respond_to?(:_reflect_on_association)  
14 - reflection = klass._reflect_on_association(name)  
15 - klass = klass.superclass  
16 - end 7 + class << self
17 8
18 - unless reflection  
19 - raise AssociationNotFoundError.new(self, name)  
20 - end  
21 - association = reflection.association_class.new(self, reflection)  
22 - association_instance_set(name, association) 9 + def add_reflection_with_descendants(ar, name, reflection)
  10 + self.add_reflection_without_descendants ar, name, reflection
  11 + ar.descendants.each do |k|
  12 + k._reflections.merge!(name.to_s => reflection)
  13 + end if ar.base_class == ar
23 end 14 end
24 15
25 - association 16 + alias_method_chain :add_reflection, :descendants
  17 +
26 end 18 end
27 end 19 end
28 end 20 end