要验证我们需要的价格,我们使用以下
validates :price, numericality: {greater_than_or_equal_to: 0.01, less_than_or_equal_to: 2000}
直到有人试图输入字符串(在此示例中为“FREE”),它才能正常工作。 这将返回错误:
invalid value for BigDecimal(): "FREE"
有没有一种干净的方法来验证这一点而不会返回500错误?
答案 0 :(得分:1)
如果它可能帮助那些偶然发现这种情况的人,似乎升级BigDecimal
宝石解决了问题
gem "bigdecimal", ">= 1.3.2"
参考:https://jamescrisp.org/2017/09/26/bigdecimal-fix-for-rails-4-with-ruby-2-4/