ruby-on-rails Rails货币验证

oxf4rvwz  于 2023-10-21  发布在  Ruby
关注(0)|答案(1)|浏览(159)

如何在Rails中编写验证,以便允许以下可能的价格值

100或$100或$100.00

我在模型中将价格字段声明为Float
我现在的代码看起来像:
validates:price,numericality:真
不允许保存100这样的值。

hujrc8aj

hujrc8aj1#

您可以将format选项添加到validates方法中。

validates :price, numericality: true,
          format: { with: /^\d{1,6}(\.\d{0,2})?$/ }

这将允许值最高为$999999.99,并带有可选的小数位(如果存在小数位,则后面必须不超过2位)。
但是,就像前面提到的其他方法一样,将这些值保存到数据库中并不是最好的选择。
我可以推荐你使用RubyMoney gem来处理货币。

相关问题