aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/reflection.rb
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2015-05-19 16:11:37 -0400
committerAaron Patterson <aaron.patterson@gmail.com>2015-05-19 16:11:53 -0400
commit0e12300c5e685ddc1b26c99fdb790e54a93153d5 (patch)
treecec92a22e0039845b8f9e0fc8c5a2b81175a4660 /activerecord/lib/active_record/reflection.rb
parent21a60c15cca12c03f6c9e7500b9d1a4eaa05db1a (diff)
downloadrails-0e12300c5e685ddc1b26c99fdb790e54a93153d5.tar.gz
rails-0e12300c5e685ddc1b26c99fdb790e54a93153d5.tar.bz2
rails-0e12300c5e685ddc1b26c99fdb790e54a93153d5.zip
parent_reflection should store only a reflection object
we should ask the reflection for its name rather than storing the reflection name in two places (an array and a reflection object)
Diffstat (limited to 'activerecord/lib/active_record/reflection.rb')
-rw-r--r--activerecord/lib/active_record/reflection.rb12
1 files changed, 7 insertions, 5 deletions
diff --git a/activerecord/lib/active_record/reflection.rb b/activerecord/lib/active_record/reflection.rb
index 1b0ae2c942..5360db6a19 100644
--- a/activerecord/lib/active_record/reflection.rb
+++ b/activerecord/lib/active_record/reflection.rb
@@ -69,9 +69,11 @@ module ActiveRecord
def reflections
ref = {}
_reflections.each do |name, reflection|
- parent_name, parent_reflection = reflection.parent_reflection
- if parent_name
- ref[parent_name] = parent_reflection
+ parent_reflection = reflection.parent_reflection
+
+ if parent_reflection
+ parent_name = parent_reflection.name
+ ref[parent_name.to_s] = parent_reflection
else
ref[name] = reflection
end
@@ -204,7 +206,7 @@ module ActiveRecord
def autosave=(autosave)
@automatic_inverse_of = false
@options[:autosave] = autosave
- _, parent_reflection = self.parent_reflection
+ parent_reflection = self.parent_reflection
if parent_reflection
parent_reflection.autosave = autosave
end
@@ -272,7 +274,7 @@ module ActiveRecord
end
attr_reader :type, :foreign_type
- attr_accessor :parent_reflection # [:name, Reflection]
+ attr_accessor :parent_reflection # Reflection
def initialize(name, scope, options, active_record)
super