ActiveRecord::Base#sum defaults to 0 if no rows are returned. Closes #11550 [kamal]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@9243 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
parent
4d594cffcf
commit
78c2d9fc22
@ -1,5 +1,7 @@
|
|||||||
*SVN*
|
*SVN*
|
||||||
|
|
||||||
|
* ActiveRecord::Base#sum defaults to 0 if no rows are returned. Closes #11550 [kamal]
|
||||||
|
|
||||||
* Ensure that respond_to? considers dynamic finder methods. Closes #11538. [floehopper]
|
* Ensure that respond_to? considers dynamic finder methods. Closes #11538. [floehopper]
|
||||||
|
|
||||||
* Ensure that save on parent object fails for invalid has_one association. Closes #10518. [Pratik]
|
* Ensure that save on parent object fails for invalid has_one association. Closes #10518. [Pratik]
|
||||||
|
@ -71,7 +71,7 @@ def maximum(column_name, options = {})
|
|||||||
#
|
#
|
||||||
# Person.sum('age')
|
# Person.sum('age')
|
||||||
def sum(column_name, options = {})
|
def sum(column_name, options = {})
|
||||||
calculate(:sum, column_name, options)
|
calculate(:sum, column_name, options) || 0
|
||||||
end
|
end
|
||||||
|
|
||||||
# This calculates aggregate values in the given column. Methods for count, sum, average, minimum, and maximum have been added as shortcuts.
|
# This calculates aggregate values in the given column. Methods for count, sum, average, minimum, and maximum have been added as shortcuts.
|
||||||
|
@ -97,6 +97,10 @@ def test_should_sum_field_with_conditions
|
|||||||
assert_equal 105, Account.sum(:credit_limit, :conditions => 'firm_id = 6')
|
assert_equal 105, Account.sum(:credit_limit, :conditions => 'firm_id = 6')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_should_return_zero_if_sum_conditions_return_nothing
|
||||||
|
assert_equal 0, Account.sum(:credit_limit, :conditions => '1 = 2')
|
||||||
|
end
|
||||||
|
|
||||||
def test_should_group_by_summed_field_with_conditions
|
def test_should_group_by_summed_field_with_conditions
|
||||||
c = Account.sum(:credit_limit, :conditions => 'firm_id > 1',
|
c = Account.sum(:credit_limit, :conditions => 'firm_id > 1',
|
||||||
:group => :firm_id)
|
:group => :firm_id)
|
||||||
|
Loading…
Reference in New Issue
Block a user