如何停止“number_to_currency”方法将逗号解释为价格的小数位?

时间:2015-04-30 21:21:19

标签: ruby-on-rails ruby comma number-to-currency

在我的Ruby on Rails应用程序中,我有一个名为 Post 的模型,它的数据库表中有一个名为“ Price ”的列;此列为十进制类型,精度为8,标度为2.

帖子的表单有一个'text_field':price,在Post show 视图中,我设置了“ Price “以这种方式显示 - >

<p>
  <strong>Price:</strong>
  <%= number_to_currency(@post.price) %>
</p>

- 我的问题:如果用户输入值 WITHOUT 任何逗号, Price 只会正确显示。如果用户输入了包含逗号的所需数值,则 Price 最终呈现为好像要放小数;因此显示的值太低

(例如:如果用户将 67,000 作为 Price 字段的值,则会将其保存/显示为 67.00 )。

如何解决这个问题,以便即使用户在 Price 的原始输入值中包含逗号,它也会正确显示...?反过来说,如果用户不包含逗号,那么一个方法可以使得 Show 视图的结果输出正确地用逗号设置数千/百万个地方...?

1 个答案:

答案 0 :(得分:0)

非常感谢用户“Ruby Racer”和“Mark H”带领我走上正确的解决方案之路!

以下是新帖子的表单的更正版本:

<%= f.label :price %>
<%= f.number_field :price, step: 'any', class: "form-control" %>

这允许价格正确显示两个小数位,并且不会接受来自用户的逗号作为初始输入。