我在一项服务中使用以下方法(通过短信通知。Twilio),我想将Numbers_to_Currency添加到消息中,这样金额的格式就很好了。我尝试了几种方法,但似乎无法奏效。有什么想法吗?
我的方法如下:
def message(details) "A transaction of #{details[:amount]} was processed." end
ttcibm8c1#
也许你可以使用NumberHelper#number_to_currency
NumberHelper#number_to_currency
include ActionView::Helpers::NumberHelper def message(details) "A transaction of #{number_to_currency(details[:amount])} was processed." end
它将使用当前区域设置,但您可以指定它,还可以使用以下选项格式化输出
:locale-设置要用于格式化的区域设置(默认为当前区域设置)。
:locale
:precision-设置精度级别(默认为2)。
:precision
:unit-设置货币的面值(默认为“$”)。
:unit
:separator-设置单位之间的分隔符(默认为“.”)。
:separator
:delimiter-设置千位分隔符(默认为“,”)。
:delimiter
:format-设置非负数的格式(默认为“%u%n”)。该货币的字段为%u,数字的字段为%n。
:format
%u
%n
:negative_format-设置负数的格式(默认为在:format给出的格式化数字前加上连字符)。接受与:format相同的字段,不同之处在于%n是该数字的绝对值。
:negative_format
:raise-如果为True,则在参数无效时引发InvalidNumberError。
:raise
InvalidNumberError
:strip_insignificant_zeros-如果true删除小数点分隔符后面的无关紧要的零(默认为false)。
:strip_insignificant_zeros
true
false
1条答案
按热度按时间ttcibm8c1#
也许你可以使用
NumberHelper#number_to_currency
它将使用当前区域设置,但您可以指定它,还可以使用以下选项格式化输出
:locale
-设置要用于格式化的区域设置(默认为当前区域设置)。:precision
-设置精度级别(默认为2)。:unit
-设置货币的面值(默认为“$”)。:separator
-设置单位之间的分隔符(默认为“.”)。:delimiter
-设置千位分隔符(默认为“,”)。:format
-设置非负数的格式(默认为“%u%n”)。该货币的字段为%u
,数字的字段为%n
。:negative_format
-设置负数的格式(默认为在:format
给出的格式化数字前加上连字符)。接受与:format
相同的字段,不同之处在于%n
是该数字的绝对值。:raise
-如果为True,则在参数无效时引发InvalidNumberError
。:strip_insignificant_zeros
-如果true
删除小数点分隔符后面的无关紧要的零(默认为false
)。