Need help with date_validator?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

465 Stars 79 Forks MIT License 241 Commits 6 Opened issues


A simple, ORM agnostic, Ruby >=2.2 compatible date validator for Rails, based on ActiveModel.

Services available


Need anything else?

Contributors list

datevalidator [Build Status](

A simple date validator for Rails. Should be compatible with all latest Rubies (>2.2, includes Ruby 3.0).

$ gem install date_validator

And I mean simple. In your model:

validates :expiration_date, date: true

or with some options, such as:

validates :expiration_date,
          date: { after: { },
                  before: { + 1.year } }
# Using prevents production cache issues

If you want to check the date against another attribute, you can pass it a Symbol instead of a block:

# Ensure the expiration date is after the packaging date
validates :expiration_date,
          date: { after: :packaging_date }

or access attributes via the object being validated directly (the input to the Proc):

validates :due_date,
          date: { after_or_equal_to: { |obj| obj.created_at.to_date }
# The object being validated is available in the Proc

For now the available options you can use are


If you want to specify a custom message, you can do so in the options hash:

validates :start_date,
  date: { after: { }, message: 'must be after today' },
  on: :create

Pretty much self-explanatory! :)

If you want to make sure an attribute is before/after another attribute, use:

validates :start_date, date: { before: :end_date }

If you want to allow an empty date, use:

validates :optional_date, date: { allow_blank: true }

Note on Patches/Pull Requests

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so I don't break it in a future version unintentionally.
  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
  • Send us a pull request. Bonus points for topic branches.


Copyright (c) 2013 Codegram. See LICENSE for details.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.