aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2013-05-17 15:00:08 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2013-05-17 15:00:08 -0700
commit822dac1e6dd7baa8ba70ed52a3d8a26f6d31ee7c (patch)
treed71b189e3b7a98bacbee164af68cb5bb4e91135c
parentc0cdd2e95902f8cb38bbae274709ed4541da84c2 (diff)
parent2eecc0d8dccf7f12518e05a72192eb853e5ee474 (diff)
downloadrails-822dac1e6dd7baa8ba70ed52a3d8a26f6d31ee7c.tar.gz
rails-822dac1e6dd7baa8ba70ed52a3d8a26f6d31ee7c.tar.bz2
rails-822dac1e6dd7baa8ba70ed52a3d8a26f6d31ee7c.zip
Merge branch 'master' into stmt
* master: include bind values from the default scope
-rw-r--r--activerecord/lib/active_record/relation.rb6
-rw-r--r--activerecord/test/cases/relation_test.rb5
2 files changed, 5 insertions, 6 deletions
diff --git a/activerecord/lib/active_record/relation.rb b/activerecord/lib/active_record/relation.rb
index 9dbbf43281..6516c4be5c 100644
--- a/activerecord/lib/active_record/relation.rb
+++ b/activerecord/lib/active_record/relation.rb
@@ -490,11 +490,13 @@ module ActiveRecord
# User.where(name: 'Oscar').where_values_hash
# # => {name: "Oscar"}
def where_values_hash
- equalities = with_default_scope.where_values.grep(Arel::Nodes::Equality).find_all { |node|
+ scope = with_default_scope
+ equalities = scope.where_values.grep(Arel::Nodes::Equality).find_all { |node|
node.left.relation.name == table_name
}
- binds = Hash[bind_values.find_all(&:first).map { |column, v| [column.name, v] }]
+ binds = Hash[scope.bind_values.find_all(&:first).map { |column, v| [column.name, v] }]
+ binds.merge!(Hash[bind_values.find_all(&:first).map { |column, v| [column.name, v] }])
Hash[equalities.map { |where|
name = where.left.name
diff --git a/activerecord/test/cases/relation_test.rb b/activerecord/test/cases/relation_test.rb
index 482c1b3d48..03c7009568 100644
--- a/activerecord/test/cases/relation_test.rb
+++ b/activerecord/test/cases/relation_test.rb
@@ -12,10 +12,7 @@ module ActiveRecord
end
def test_construction
- relation = nil
- assert_nothing_raised do
- relation = Relation.new FakeKlass, :b
- end
+ relation = Relation.new FakeKlass, :b
assert_equal FakeKlass, relation.klass
assert_equal :b, relation.table
assert !relation.loaded, 'relation is not loaded'