如何在Rails中编写验证,以便允许以下可能的价格值
100或$100或$100.00
我在模型中将价格字段声明为Float我现在的代码看起来像:validates:price,numericality:真不允许保存100这样的值。
hujrc8aj1#
您可以将format选项添加到validates方法中。
format
validates
validates :price, numericality: true, format: { with: /^\d{1,6}(\.\d{0,2})?$/ }
这将允许值最高为$999999.99,并带有可选的小数位(如果存在小数位,则后面必须不超过2位)。但是,就像前面提到的其他方法一样,将这些值保存到数据库中并不是最好的选择。我可以推荐你使用RubyMoney gem来处理货币。
1条答案
按热度按时间hujrc8aj1#
您可以将
format
选项添加到validates
方法中。这将允许值最高为$999999.99,并带有可选的小数位(如果存在小数位,则后面必须不超过2位)。
但是,就像前面提到的其他方法一样,将这些值保存到数据库中并不是最好的选择。
我可以推荐你使用RubyMoney gem来处理货币。