aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/associations
diff options
context:
space:
mode:
authorMatthew Draper <matthew@trebex.net>2016-02-21 03:28:18 +1030
committerMatthew Draper <matthew@trebex.net>2016-02-21 03:28:18 +1030
commitcdd45fa09d76f7c16ccbb6682e672a44f82174a0 (patch)
tree669f8316541c06bcf18692d7b4f6f9ba904ce119 /activerecord/lib/active_record/associations
parent4f44348602446217df89536e911f516b065de33a (diff)
downloadrails-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.rb4
-rw-r--r--activerecord/lib/active_record/associations/singular_association.rb2
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