diff options
author | Matthew Draper <matthew@trebex.net> | 2016-02-21 03:28:18 +1030 |
---|---|---|
committer | Matthew Draper <matthew@trebex.net> | 2016-02-21 03:28:18 +1030 |
commit | cdd45fa09d76f7c16ccbb6682e672a44f82174a0 (patch) | |
tree | 669f8316541c06bcf18692d7b4f6f9ba904ce119 /activerecord/lib/active_record/associations | |
parent | 4f44348602446217df89536e911f516b065de33a (diff) | |
download | rails-cdd45fa09d76f7c16ccbb6682e672a44f82174a0.tar.gz rails-cdd45fa09d76f7c16ccbb6682e672a44f82174a0.tar.bz2 rails-cdd45fa09d76f7c16ccbb6682e672a44f82174a0.zip |
Mutating the result of Relation#to_a should not affect the relation
Clarifying this separation and enforcing relation immutability is the
culmination of the previous efforts to remove the mutator method
delegations.
Diffstat (limited to 'activerecord/lib/active_record/associations')
-rw-r--r-- | activerecord/lib/active_record/associations/collection_proxy.rb | 4 | ||||
-rw-r--r-- | activerecord/lib/active_record/associations/singular_association.rb | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/associations/collection_proxy.rb b/activerecord/lib/active_record/associations/collection_proxy.rb index 2a9627a474..b9aed05135 100644 --- a/activerecord/lib/active_record/associations/collection_proxy.rb +++ b/activerecord/lib/active_record/associations/collection_proxy.rb @@ -979,6 +979,10 @@ module ActiveRecord end alias_method :to_a, :to_ary + def records # :nodoc: + load_target + end + # Adds one or more +records+ to the collection by setting their foreign keys # to the association's primary key. Returns +self+, so several appends may be # chained together. diff --git a/activerecord/lib/active_record/associations/singular_association.rb b/activerecord/lib/active_record/associations/singular_association.rb index c7cc48ba16..f913f0852a 100644 --- a/activerecord/lib/active_record/associations/singular_association.rb +++ b/activerecord/lib/active_record/associations/singular_association.rb @@ -45,7 +45,7 @@ module ActiveRecord end def get_records - return scope.limit(1).to_a if skip_statement_cache? + return scope.limit(1).records if skip_statement_cache? conn = klass.connection sc = reflection.association_scope_cache(conn, owner) do |