ruby-on-rails - 如何在 Rails 3 中为日期字段编写 inclusion_of 验证器?

标签 ruby-on-rails ruby ruby-on-rails-3 validation

我想像下面这样编写包含验证器:

validates :application_date,
  inclusion_of: { in: Date.today..20.years.from_now }

# Schema
#  application_date       :date

但是我明白了

bad value for range

最佳答案

您收到该错误的原因是因为 20.years.from_now 正在返回一个日期时间对象 (ActiveSupport::TimeWithZone) 而 Date.today 返回一个日期.因此,您的范围将不起作用,因为它使用两种不同的对象类型。您可以通过将后者转换为日期来修复它:

Date.today..20.years.from_now.to_date

关于ruby-on-rails - 如何在 Rails 3 中为日期字段编写 inclusion_of 验证器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14687893/

相关文章:

javascript - 如何呈现通过表单提交的 HTML?

ruby-on-rails - 如何添加 CSV header

ruby - 在 Grape 中只加载一次属性

ruby-on-rails - Rails 3 - 如何在 View 中评论?

sql - 如何手动实例化 ActiveRecord 截断对象?

ruby-on-rails - Rails 4强参数: permit all attributes?

ruby-on-rails - `rails server` 抛出错误 "cannot load such file"-- sass/logger (LoadError)

ruby-on-rails - Heroku 应用正在读取 database.yml 文件

ruby - 数组数组中的唯一元素

ruby - 如何检查模块