【问题标题】:number_with_precision formatting number with hyphensnumber_with_precision 用连字符格式化数字
【发布时间】:2014-01-20 18:20:20
【问题描述】:

number_with_precision(ActionView::Helpers::NumberHelper 中包含的辅助方法)正在对输出数字进行断字。在我们将 Ruby 从 1.9.3 升级到 2.10 之后,这开始在我们的暂存和生产环境中发生。我们仍在运行 Rails 3.2.15。

例子:

>> include ActionView::Helpers::NumberHelper
>> number_with_precision(10000)
=> "10-000,000"

在我的开发机器中,它按预期返回"10000,000"

【问题讨论】:

    标签: ruby-on-rails ruby formatting


    【解决方案1】:

    我猜这是由于某种语言环境造成的。

    为了确定,明确提供(非)分隔符:

    number_with_precision(10000, delimiter: '')
    

    为避免重复选项的麻烦,请创建您自己的助手或在 application_helper 中:

    def number_with_precision(number, options = {})
      options[:delimiter] ||= ''
      super(number, options)
    end
    

    【讨论】:

    • 感谢您的回答。传递 delimiter: '' 参数解决了这个问题,但我想让它像以前一样默认工作。设置 locale: :en 也可以解决问题,但我的 default_locale 是 :es。我应该在服务器中安装 es 语言环境吗? $> locale -a 显示它没有安装。
    【解决方案2】:

    @apneadiving 指出这是一个语言环境问题,而且确实如此。 在我的语言环境文件中:

    es:
     number:
       precision:
         format:
           delimiter: "-"
    

    http://ruby-i18n.org/wiki/translations-available-in-ruby-on-rails 中指出的 number_with_precision 中使用了精度属性。

    删除该配置解决了我的问题。

    【讨论】:

      猜你喜欢
      • 2014-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多