逗号和点同时在数字字段的轨道上

时间:2016-07-15 17:03:37

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4

有人知道在小数字段中同时使用逗号和点的技巧,因为国际分隔符是Dot但在某些国家/地区是逗号。 我尝试过Before_validation,但是我遇到了很多问题,有时候工作有时没有,这就是代码:

def update_fields
    [:field_1, :field_2, :field_3].each { |k|
      unless k != nil
        self[k.to_sym] = self.attributes_before_type_cast[k.to_s].gsub(/[.,]/, '.' => '', ',' => '.')
      end
    }
end

感谢您的建议。

2 个答案:

答案 0 :(得分:1)

请尝试一下: 将它添加到GemFile

gem 'i18n_alchemy'

之后:

class MyClass < ActiveRecord::Base
  include I18n::Alchemy
  localize [:field1, field2, field3], using: :number
end

答案 1 :(得分:0)

除非您在前端接受千位分隔符,否则只需将所有内容更改为 dots

value.tr!(',', '.')

使用千位分隔符,任务变得更加复杂,最简单的处理方法是使用javascript标准化客户端(即前端)上的所有内容,因为在浏览器中用户的语言环境设置可用。