From e4e84fee8b9ecd63e1cc7b62beb577f8fe7ce35d Mon Sep 17 00:00:00 2001 From: Santiago Pastorino Date: Wed, 3 Oct 2012 00:48:28 -0300 Subject: Refactor --- activerecord/lib/active_record/counter_cache.rb | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'activerecord/lib') diff --git a/activerecord/lib/active_record/counter_cache.rb b/activerecord/lib/active_record/counter_cache.rb index d28cd560d9..57838ff984 100644 --- a/activerecord/lib/active_record/counter_cache.rb +++ b/activerecord/lib/active_record/counter_cache.rb @@ -23,12 +23,11 @@ module ActiveRecord has_many_association = reflect_on_association(association.to_sym) if has_many_association.is_a? ActiveRecord::Reflection::ThroughReflection - foreign_key = has_many_association.through_reflection.foreign_key.to_s - child_class = has_many_association.through_reflection.klass - else - foreign_key = has_many_association.foreign_key.to_s - child_class = has_many_association.klass + has_many_association = has_many_association.through_reflection end + + foreign_key = has_many_association.foreign_key.to_s + child_class = has_many_association.klass belongs_to = child_class.reflect_on_all_associations(:belongs_to) reflection = belongs_to.find { |e| e.foreign_key.to_s == foreign_key && e.options[:counter_cache].present? } counter_name = reflection.counter_cache_column -- cgit v1.2.3