未验证 提交 a5a22c4e 编写于 作者: R Ryuta Kamizono 提交者: GitHub

Merge pull request #34858 from albertoalmagro/make-rails-compatible-accross-ruby-versions

Make average compatible across ruby versions
......@@ -401,7 +401,7 @@ def type_cast_calculated_value(value, type, operation = nil)
case operation
when "count" then value.to_i
when "sum" then type.deserialize(value || 0)
when "average" then value.respond_to?(:to_d) ? value.to_d : value
when "average" then value&.respond_to?(:to_d) ? value.to_d : value
else type.deserialize(value)
end
end
......
......@@ -57,12 +57,8 @@ def test_should_return_integer_average_if_db_returns_such
assert_equal 3, value
end
def test_should_return_nil_to_d_as_average
if nil.respond_to?(:to_d)
assert_equal BigDecimal(0), NumericData.average(:bank_balance)
else
assert_nil NumericData.average(:bank_balance)
end
def test_should_return_nil_as_average
assert_nil NumericData.average(:bank_balance)
end
def test_should_get_maximum_of_field
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册