aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2015-09-01 16:00:30 -0300
committerRafael Mendonça França <rafaelmfranca@gmail.com>2015-09-01 16:02:04 -0300
commit4727a94c50e8bb371e9c9e7798a5ba0510320657 (patch)
tree84b79d9c689de09dc6e318384510c944b3ecc276 /activerecord/lib/active_record
parent9f28cb9dc778b46a3e455f9d64c719a8a95078b8 (diff)
downloadrails-4727a94c50e8bb371e9c9e7798a5ba0510320657.tar.gz
rails-4727a94c50e8bb371e9c9e7798a5ba0510320657.tar.bz2
rails-4727a94c50e8bb371e9c9e7798a5ba0510320657.zip
Respect scale of the column in the Decimal type
[Rafael Mendonça França + Jean Boussier]
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r--activerecord/lib/active_record/type/decimal.rb4
1 files changed, 3 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/type/decimal.rb b/activerecord/lib/active_record/type/decimal.rb
index f200a92d10..f5b145230d 100644
--- a/activerecord/lib/active_record/type/decimal.rb
+++ b/activerecord/lib/active_record/type/decimal.rb
@@ -14,7 +14,7 @@ module ActiveRecord
private
def cast_value(value)
- case value
+ casted_value = case value
when ::Float
convert_float_to_big_decimal(value)
when ::Numeric, ::String
@@ -26,6 +26,8 @@ module ActiveRecord
cast_value(value.to_s)
end
end
+
+ scale ? casted_value.round(scale) : casted_value
end
def convert_float_to_big_decimal(value)