Rails:将货币从表格转换为大十进制

时间:2018-09-04 21:14:54

标签: ruby-on-rails ruby integer bigdecimal

我有一个form_for,其中有一个text_field,它接受​​用户以以下格式输入的数字:$45,000.45

但是,数据库将其另存为BigDecimal值。

在保存之前将其转换为大十进制并以这种方式显示在视图上的最有效方法是什么?

2 个答案:

答案 0 :(得分:2)

money宝石(和money-rails)是一种非常有效的处理此类金额的方法。

答案 1 :(得分:1)

过去我是如何使用Rails帮助器方法number_to_currency处理此问题的。

number_to_currency(1234567890.50)                    # => $1,234,567,890.50
number_to_currency(1234567890.506)                   # => $1,234,567,890.51
number_to_currency(1234567890.506, :precision => 3)  # => $1,234,567,890.506

您可以将字段另存为普通数字,Rails会将其格式化为$。