为了验证我们需要的价格,我们使用以下内容
validates :price, numericality: {greater_than_or_equal_to: 0.01, less_than_or_equal_to: 2000}
在有人尝试输入字符串(在本例中为“FREE”)之前,它工作正常。 这将返回错误:
invalid value for BigDecimal(): "FREE"
有没有一种干净的方法可以在不返回 500 错误的情况下验证它?
最佳答案
万一它可能会帮助偶然发现这种情况的人,似乎升级 BigDecimal
gem 可以解决问题
gem "bigdecimal", ">= 1.3.2"
引用:https://jamescrisp.org/2017/09/26/bigdecimal-fix-for-rails-4-with-ruby-2-4/
关于ruby-on-rails - BigDecimal 验证会引发非数值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41686885/