【发布时间】:2015-04-23 12:45:29
【问题描述】:
如何在 Rails 中编写验证以允许以下可能的价格值
100 或 100 美元或 100.00 或 100.00 美元
我已在模型中将价格字段声明为 Float
我当前的代码如下所示:
验证 :price,numericality: true
这不允许像 100 这样的值被保存。
【问题讨论】:
-
不要在数据库中存储货币符号。只存储号码。并在渲染时进行装饰。
-
对于初学者,您应该使用小数 stackoverflow.com/questions/1019939/…
-
我希望它可以节省 100 美元,但不会节省 100 美元。如果您希望用户也能够包含 $,您将不得不在验证之前对用户的输入进行一些处理。您最好在 UI 中显示货币符号,并且根本不允许用户输入它。
标签: ruby-on-rails