提交 d1545bcf 编写于 作者: A Akira Matsuda

fix AR having() not to raise NoMethodError when the given argument does not respond to empty?

having raises NoMethodError: undefined method `empty?' when a Fixnum or Date/Time were passed via varargs
上级 111968d4
......@@ -96,11 +96,11 @@ def where(opts, *rest)
relation
end
def having(*args)
return self if args.blank?
def having(opts, *rest)
return self if opts.blank?
relation = clone
relation.having_values += build_where(*args)
relation.having_values += build_where(opts, rest)
relation
end
......
......@@ -159,6 +159,13 @@ def test_find_with_group_and_sanitized_having
assert developers.all? { |developer| developer.salary > 10000 }
end
def test_find_with_group_and_sanitized_having_method
developers = Developer.group(:salary).having("sum(salary) > ?", 10000).select('salary').all
assert_equal 3, developers.size
assert_equal 3, developers.map(&:salary).uniq.size
assert developers.all? { |developer| developer.salary > 10000 }
end
def test_find_with_entire_select_statement
topics = Topic.find_by_sql "SELECT * FROM topics WHERE author_name = 'Mary'"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册