aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2011-01-07 18:45:17 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2011-01-07 18:45:17 -0800
commit36d7bd189818eb1bb0df4f9472113cf70cd652de (patch)
treeae757ea7820b5e527af4e35b768a4f1e600b1ee0
parent84f81f57793689a1c5b5ef1fec800a29c96c30c5 (diff)
downloadrails-36d7bd189818eb1bb0df4f9472113cf70cd652de.tar.gz
rails-36d7bd189818eb1bb0df4f9472113cf70cd652de.tar.bz2
rails-36d7bd189818eb1bb0df4f9472113cf70cd652de.zip
stop creating intermediate AR objects, just construct AR objects from a list of hashes
-rw-r--r--activerecord/lib/active_record/relation/finder_methods.rb3
1 files changed, 2 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/relation/finder_methods.rb b/activerecord/lib/active_record/relation/finder_methods.rb
index 8bbc47ab75..aa9d468bba 100644
--- a/activerecord/lib/active_record/relation/finder_methods.rb
+++ b/activerecord/lib/active_record/relation/finder_methods.rb
@@ -188,7 +188,8 @@ module ActiveRecord
def find_with_associations
including = (@eager_load_values + @includes_values).uniq
join_dependency = ActiveRecord::Associations::ClassMethods::JoinDependency.new(@klass, including, [])
- rows = construct_relation_for_association_find(join_dependency).to_a
+ relation = construct_relation_for_association_find(join_dependency)
+ rows = connection.exec_query(relation.to_sql, 'SQL', relation.bind_values)
join_dependency.instantiate(rows)
rescue ThrowResult
[]