aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/relation.rb
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2012-02-27 10:57:40 -0800
committerGeorge Brocklehurst <george.brocklehurst@gmail.com>2012-11-10 13:32:11 +0100
commita3cf03ef99b2cfd811e0ca5cd31ef57976a9408b (patch)
tree6dbf53fb64047463dcc4983f875f4242377a33eb /activerecord/lib/active_record/relation.rb
parent5f508471b8919ec8d5fc3b6cbe24978a36de8150 (diff)
downloadrails-a3cf03ef99b2cfd811e0ca5cd31ef57976a9408b.tar.gz
rails-a3cf03ef99b2cfd811e0ca5cd31ef57976a9408b.tar.bz2
rails-a3cf03ef99b2cfd811e0ca5cd31ef57976a9408b.zip
use bind values for join columns
This is a backport of 4bc2ae0da1dd812aee759f6d13ad428354cd0e13. It fixes bug #7950. Conflicts: activerecord/lib/active_record/relation/calculations.rb activerecord/lib/active_record/relation/finder_methods.rb
Diffstat (limited to 'activerecord/lib/active_record/relation.rb')
-rw-r--r--activerecord/lib/active_record/relation.rb7
1 files changed, 6 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/relation.rb b/activerecord/lib/active_record/relation.rb
index 4b3b30d6ed..a727f40194 100644
--- a/activerecord/lib/active_record/relation.rb
+++ b/activerecord/lib/active_record/relation.rb
@@ -464,7 +464,12 @@ module ActiveRecord
node.left.relation.name == table_name
}
- Hash[equalities.map { |where| [where.left.name, where.right] }]
+ binds = Hash[bind_values.find_all(&:first).map { |column, v| [column.name, v] }]
+
+ Hash[equalities.map { |where|
+ name = where.left.name
+ [name, binds.fetch(name.to_s) { where.right }]
+ }]
end
def scope_for_create