diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2013-05-17 15:00:08 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2013-05-17 15:00:08 -0700 |
commit | 822dac1e6dd7baa8ba70ed52a3d8a26f6d31ee7c (patch) | |
tree | d71b189e3b7a98bacbee164af68cb5bb4e91135c | |
parent | c0cdd2e95902f8cb38bbae274709ed4541da84c2 (diff) | |
parent | 2eecc0d8dccf7f12518e05a72192eb853e5ee474 (diff) | |
download | rails-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.rb | 6 | ||||
-rw-r--r-- | activerecord/test/cases/relation_test.rb | 5 |
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' |