aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorArthur Neves <arthurnn@gmail.com>2014-02-13 10:41:43 -0500
committerArthur Neves <arthurnn@gmail.com>2014-02-13 10:41:43 -0500
commitc3872522895dc98be0081c4457f834951dbd11bc (patch)
tree0c90f66487628c41f8300856547b88071f7f08f9 /activerecord/lib
parent6e61da2dabc30c78de7f5ba8f53f534ced463fb3 (diff)
downloadrails-c3872522895dc98be0081c4457f834951dbd11bc.tar.gz
rails-c3872522895dc98be0081c4457f834951dbd11bc.tar.bz2
rails-c3872522895dc98be0081c4457f834951dbd11bc.zip
Dont use Enumarator on join_association
Diffstat (limited to 'activerecord/lib')
-rw-r--r--activerecord/lib/active_record/associations/join_dependency/join_association.rb6
1 files changed, 4 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/associations/join_dependency/join_association.rb b/activerecord/lib/active_record/associations/join_dependency/join_association.rb
index 0cd2e1a816..cee3c9999f 100644
--- a/activerecord/lib/active_record/associations/join_dependency/join_association.rb
+++ b/activerecord/lib/active_record/associations/join_dependency/join_association.rb
@@ -25,7 +25,8 @@ module ActiveRecord
joins = []
tables = tables.reverse
- scope_chain_iter = scope_chain.reverse_each
+ scope_chain_index = 0
+ scope_chain = scope_chain.reverse
# The chain starts with the target table, but we want to end with it here (makes
# more sense in this context), so we reverse
@@ -44,13 +45,14 @@ module ActiveRecord
constraint = build_constraint(klass, table, key, foreign_table, foreign_key)
- scope_chain_items = scope_chain_iter.next.map do |item|
+ scope_chain_items = scope_chain[scope_chain_index].map do |item|
if item.is_a?(Relation)
item
else
ActiveRecord::Relation.create(klass, table).instance_exec(node, &item)
end
end
+ scope_chain_index += 1
scope_chain_items.concat [klass.send(:build_default_scope)].compact