From 1d6a87779c73bc7d9d5f235afadc0df4a36f534f Mon Sep 17 00:00:00 2001 From: joker1007 Date: Tue, 29 Jul 2014 20:16:10 +0900 Subject: Fix type casting to Decimal from Float with ... When I defines large precision column at RDBMS, I assigns float value, raise ArgumentError (precision too large). --- activerecord/test/cases/type/decimal_test.rb | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'activerecord/test') diff --git a/activerecord/test/cases/type/decimal_test.rb b/activerecord/test/cases/type/decimal_test.rb index 951cd879dd..da30de373e 100644 --- a/activerecord/test/cases/type/decimal_test.rb +++ b/activerecord/test/cases/type/decimal_test.rb @@ -10,6 +10,11 @@ module ActiveRecord assert_equal BigDecimal.new("1"), type.type_cast_from_user(:"1") end + def test_type_cast_decimal_from_float_with_large_precision + type = Decimal.new(precision: ::Float::DIG + 2) + assert_equal BigDecimal.new("123.0"), type.type_cast_from_user(123.0) + end + def test_type_cast_decimal_from_rational_with_precision type = Decimal.new(precision: 2) assert_equal BigDecimal("0.33"), type.type_cast_from_user(Rational(1, 3)) -- cgit v1.2.3