在我的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 视图的结果输出正确地用逗号设置数千/百万个地方...?
答案 0 :(得分:0)
非常感谢用户“Ruby Racer”和“Mark H”带领我走上正确的解决方案之路!
以下是新帖子的表单的更正版本:
<%= f.label :price %>
<%= f.number_field :price, step: 'any', class: "form-control" %>
这允许价格正确显示两个小数位,并且不会接受来自用户的逗号作为初始输入。