diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2013-05-17 15:40:13 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2013-05-17 15:40:13 -0700 |
commit | 3cb2c14f87c536fde0b04d6b14385d3b730a84ff (patch) | |
tree | 819ef0f5a39f328b8ff6bfe0bd78fa27f5c5d558 | |
parent | 9933ab1b28b1c001348e8cb8045084ede72fcf89 (diff) | |
parent | 18fe96cc168927a6508478f9ad127d57c1ad56dd (diff) | |
download | rails-3cb2c14f87c536fde0b04d6b14385d3b730a84ff.tar.gz rails-3cb2c14f87c536fde0b04d6b14385d3b730a84ff.tar.bz2 rails-3cb2c14f87c536fde0b04d6b14385d3b730a84ff.zip |
Merge branch 'master' into experiment
* master:
stop doing assingments in an iterator
-rw-r--r-- | activerecord/lib/active_record/associations/join_dependency/join_association.rb | 8 |
1 files changed, 6 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 e4d17451dc..b81aecb4e5 100644 --- a/activerecord/lib/active_record/associations/join_dependency/join_association.rb +++ b/activerecord/lib/active_record/associations/join_dependency/join_association.rb @@ -106,12 +106,16 @@ module ActiveRecord ] end - scope_chain_items.each do |item| + constraint = scope_chain_items.inject(constraint) do |chain, item| unless item.is_a?(Relation) item = ActiveRecord::Relation.new(reflection.klass, table).instance_exec(self, &item) end - constraint = constraint.and(item.arel.constraints) unless item.arel.constraints.empty? + if item.arel.constraints.empty? + chain + else + chain.and(item.arel.constraints) + end end manager.from(join(table, constraint)) |