mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Merge pull request #6971 from dmathieu/empty_hash
fix querying with an empty hash
This commit is contained in:
commit
5dc5560090
3 changed files with 18 additions and 3 deletions
|
@ -1,5 +1,7 @@
|
||||||
## Rails 4.0.0 (unreleased) ##
|
## Rails 4.0.0 (unreleased) ##
|
||||||
|
|
||||||
|
* Fix querying with an empty hash *Damien Mathieu*
|
||||||
|
|
||||||
* Fix creation of through association models when using `collection=[]`
|
* Fix creation of through association models when using `collection=[]`
|
||||||
on a `has_many :through` association from an unsaved model.
|
on a `has_many :through` association from an unsaved model.
|
||||||
Fix #7661.
|
Fix #7661.
|
||||||
|
|
|
@ -10,8 +10,12 @@ module ActiveRecord
|
||||||
table = Arel::Table.new(column, default_table.engine)
|
table = Arel::Table.new(column, default_table.engine)
|
||||||
association = klass.reflect_on_association(column.to_sym)
|
association = klass.reflect_on_association(column.to_sym)
|
||||||
|
|
||||||
value.each do |k, v|
|
if value.empty?
|
||||||
queries.concat expand(association && association.klass, table, k, v)
|
queries.concat ['1 = 2']
|
||||||
|
else
|
||||||
|
value.each do |k, v|
|
||||||
|
queries.concat expand(association && association.klass, table, k, v)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
column = column.to_s
|
column = column.to_s
|
||||||
|
|
|
@ -4,10 +4,11 @@ require 'models/price_estimate'
|
||||||
require 'models/treasure'
|
require 'models/treasure'
|
||||||
require 'models/post'
|
require 'models/post'
|
||||||
require 'models/comment'
|
require 'models/comment'
|
||||||
|
require 'models/edge'
|
||||||
|
|
||||||
module ActiveRecord
|
module ActiveRecord
|
||||||
class WhereTest < ActiveRecord::TestCase
|
class WhereTest < ActiveRecord::TestCase
|
||||||
fixtures :posts
|
fixtures :posts, :edges
|
||||||
|
|
||||||
def test_belongs_to_shallow_where
|
def test_belongs_to_shallow_where
|
||||||
author = Author.new
|
author = Author.new
|
||||||
|
@ -76,5 +77,13 @@ module ActiveRecord
|
||||||
post = Post.first
|
post = Post.first
|
||||||
assert_equal post, Post.where(:posts => { 'id' => post.id }).first
|
assert_equal post, Post.where(:posts => { 'id' => post.id }).first
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_where_with_table_name_and_empty_hash
|
||||||
|
assert_equal 0, Post.where(:posts => {}).count
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_where_with_empty_hash_and_no_foreign_key
|
||||||
|
assert_equal 0, Edge.where(:sink => {}).count
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue