Ruby on Rails日期字段验证

时间:2011-05-02 17:15:06

标签: ruby-on-rails-3 date

我正在为这个项目开发一个类,其中一个要求是“在日期字段类型上验证”。

例如,我做了:

rails g scaffold Tasks id:primary_key description:string due:date

我会在模型中添加什么以便验证日期?

我尝试了多种不同的“解决方案”,但似乎没有任何效果。

2 个答案:

答案 0 :(得分:4)

在您的模型中,您可以定义自定义方法来处理验证。

class Task < ActiveRecord::Base
  validate :check_due_date


  def check_due_date
    # You can now check the "due" field here. For example, if you only want to allow due
    # dates today and later:

    if due < Date.today
      errors.add(:due, "can only be today or later.")
    end
  end
end

答案 1 :(得分:1)

您可以使用简单的“验证及时性”插件:https://github.com/adzap/validates_timeliness/

然后使用以下语法:

class Task < ActiveRecord::Base
  validates_date :due
end

除非不允许使用插件,否则其他答案(创建自己的验证器)会更合适。