From 35f94acf55f0d4dbcba747601434736685e9924f Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Thu, 1 Aug 2013 09:37:24 -0700 Subject: separate some mutations from reflection construction --- activerecord/lib/active_record/associations/builder/association.rb | 6 +----- activerecord/lib/active_record/associations/builder/belongs_to.rb | 6 +++++- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'activerecord/lib') diff --git a/activerecord/lib/active_record/associations/builder/association.rb b/activerecord/lib/active_record/associations/builder/association.rb index a8559d9d2d..9800013ee5 100644 --- a/activerecord/lib/active_record/associations/builder/association.rb +++ b/activerecord/lib/active_record/associations/builder/association.rb @@ -26,6 +26,7 @@ module ActiveRecord::Associations::Builder raise ArgumentError, "association names must be a Symbol" unless name.kind_of?(Symbol) builder = new(model, name, scope, options, &block) + builder.define_accessors model.generated_feature_methods builder.build end @@ -49,12 +50,7 @@ module ActiveRecord::Associations::Builder end end - def mixin - @model.generated_feature_methods - end - def build - define_accessors(mixin) configure_dependency if options[:dependent] reflection = ActiveRecord::Reflection.create(macro, name, scope, options, model) Association.extensions.each do |extension| diff --git a/activerecord/lib/active_record/associations/builder/belongs_to.rb b/activerecord/lib/active_record/associations/builder/belongs_to.rb index 81293e464d..0c3b3847cc 100644 --- a/activerecord/lib/active_record/associations/builder/belongs_to.rb +++ b/activerecord/lib/active_record/associations/builder/belongs_to.rb @@ -23,6 +23,11 @@ module ActiveRecord::Associations::Builder [:destroy, :delete] end + def define_accessors(mixin) + super + add_counter_cache_methods mixin + end + private def add_counter_cache_methods(mixin) @@ -72,7 +77,6 @@ module ActiveRecord::Associations::Builder def add_counter_cache_callbacks(reflection) cache_column = reflection.counter_cache_column - add_counter_cache_methods mixin association = self model.after_create lambda { |record| -- cgit v1.2.3