ruby-on-rails - BigDecimal 验证会引发非数值错误

标签 ruby-on-rails ruby

为了验证我们需要的价格,我们使用以下内容

  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/

相关文章:

mysql - 从数据库导入/导出数据同时绕过 Active Record 验证的最佳方法

ruby - 当使用 .each do |x| 遍历 ruby​​ 数组时,我的代码块只执行一次,这是怎么回事?

ruby - ActiveAdmin 索引作为 Leaflet 映射

ruby-on-rails - rails 上的 ruby 。 bundler 。 cucumber 。 rake 中止!命令失败,状态为 (1)

ruby-on-rails - 列出对象响应的所有方法?

ruby-on-rails - Paperclip 2.3.5 到 3.3.1 导致 url 与路径不同

ruby-on-rails - 在 Rails 模型中调用 gravatar_for

mysql - 运行 rake db :migrate 时出错

ruby - 为什么堆栈内存限制系统之间的差异很大?

ruby-on-rails - 将用户带回到代码的开头