整数或小数是否有等效的 gsub ? gsub 应该使用整数吗?基本上我只是想将十进制输入到 ruby 形式以及用户能够使用逗号的内容。例如,我希望用户能够输入 1,000.99。
我尝试过使用
before_save :strip_commas
def strip_commas
self.number = self.number.gsub(",", "")
end
但出现以下错误“8:Fixnum 的未定义方法‘gsub’”,其中“8”被用户输入的任何数字替换。
如果您的字段是 Fixnum,则它永远不会有逗号,因为 Rails 必须将用户输入转换为数字才能将其存储在那里。
但是,它将通过在输入字符串上调用 to_i 来实现这一点,这不是您想要的。
将普通设置器重写为类似的东西
def price=(num)
num.gsub!(',','') if num.is_a?(String)
self[:price] = num.to_i
end
未经测试,但类似的东西应该可以工作......
当输入仍然是字符串时,您需要获取逗号。
Edit:正如评论中所述,如果您想接受小数并创建非整数的值,则需要与以下不同的转换String.to_i
。此外,不同的国家/地区对数字标点符号有不同的约定,因此这不是一个完整的解决方案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)