aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r--activerecord/lib/active_record/associations/builder/singular_association.rb2
-rw-r--r--activerecord/lib/active_record/reflection.rb8
2 files changed, 6 insertions, 4 deletions
diff --git a/activerecord/lib/active_record/associations/builder/singular_association.rb b/activerecord/lib/active_record/associations/builder/singular_association.rb
index 76e48e66e5..7bd894d6ab 100644
--- a/activerecord/lib/active_record/associations/builder/singular_association.rb
+++ b/activerecord/lib/active_record/associations/builder/singular_association.rb
@@ -16,7 +16,7 @@ module ActiveRecord::Associations::Builder
end
# Defines the (build|create)_association methods for belongs_to or has_one association
-
+
def define_constructors
mixin.class_eval <<-CODE, __FILE__, __LINE__ + 1
def build_#{name}(*args, &block)
diff --git a/activerecord/lib/active_record/reflection.rb b/activerecord/lib/active_record/reflection.rb
index 4bd6669f3c..de2204da29 100644
--- a/activerecord/lib/active_record/reflection.rb
+++ b/activerecord/lib/active_record/reflection.rb
@@ -21,14 +21,16 @@ module ActiveRecord
end
reflection = klass.new(macro, name, scope, options, ar)
+ add_reflection ar, name, reflection
+ reflection
+ end
- if klass == AggregateReflection
+ def self.add_reflection(ar, name, reflection)
+ if reflection.class == AggregateReflection
ar.aggregate_reflections = ar.aggregate_reflections.merge(name => reflection)
else
ar.reflections = ar.reflections.merge(name => reflection)
end
-
- reflection
end
# \Reflection enables to interrogate Active Record classes and objects