diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2017-02-24 19:44:19 -0500 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2017-02-24 19:44:19 -0500 |
commit | bf8f42b2fea7e104826e214bcdd1255aa9acc802 (patch) | |
tree | de606dba6db87db1ecd41fd9e09f3844e56a7ccf /activemodel/lib | |
parent | 9099cf064f66ae4e6414736ad513399c86100902 (diff) | |
parent | 0683552b15becd6949ab4e125d9790f1b65b7415 (diff) | |
download | rails-bf8f42b2fea7e104826e214bcdd1255aa9acc802.tar.gz rails-bf8f42b2fea7e104826e214bcdd1255aa9acc802.tar.bz2 rails-bf8f42b2fea7e104826e214bcdd1255aa9acc802.zip |
Merge branch 'jhawthorn-ruby_2_4_bigdecimal_casting'
Closes #27429
Diffstat (limited to 'activemodel/lib')
-rw-r--r-- | activemodel/lib/active_model/type/decimal.rb | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/activemodel/lib/active_model/type/decimal.rb b/activemodel/lib/active_model/type/decimal.rb index 541a12c8a1..e6805c5f6b 100644 --- a/activemodel/lib/active_model/type/decimal.rb +++ b/activemodel/lib/active_model/type/decimal.rb @@ -21,8 +21,14 @@ module ActiveModel case value when ::Float convert_float_to_big_decimal(value) - when ::Numeric, ::String + when ::Numeric BigDecimal(value, precision || BIGDECIMAL_PRECISION) + when ::String + begin + value.to_d + rescue ArgumentError + BigDecimal(0) + end else if value.respond_to?(:to_d) value.to_d |