number_to_human与货币

LuP*_*LuP 4 rubygems ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2

我使用number_to_human打印400万.我想知道是否有一种方法可以将$添加到数字的前面?当我有一个负数时,我会遇到问题.如果我只是在前面扔一块钱,我会得到他们想要的400万美元 - 400万美元

apn*_*ing 9

它是内置的Rails:

number_to_currency(number_to_human(-4000000))
# => "-$4 Million"
Run Code Online (Sandbox Code Playgroud)

使用约定的一大优势是,当你需要i18​​n时,你只需要传递语言环境:

number_to_currency(number_to_human(-4000000), locale: 'en-EU')
# => "-4 Million €"
Run Code Online (Sandbox Code Playgroud)


SSR*_*SSR 8

这很有趣,如果它对任何人都有帮助:

How to Present thousands as "K", millions as "M" in ruby for that, 
just follow the steps
Run Code Online (Sandbox Code Playgroud)

在顶部控制器中包含 NumberHelper

include ActionView::Helpers::NumberHelper
Run Code Online (Sandbox Code Playgroud)

使用这个 number_to_ human Helper 并传递值,这将转换该值

<%= number_to_human(5223654) %>
Run Code Online (Sandbox Code Playgroud)

将此代码粘贴到 en.yml 中以使其正常工作

en:
  number:
    human:
      decimal_units:
       format: "%n%u"
       units:
         unit: ""
         thousand: K
         million: M
         billion: B
         trillion: T
         quadrillion: Q
Run Code Online (Sandbox Code Playgroud)