更新
# Railsで日付のカスタムバリデーター
以下のQiitaを参考に。
自分はこんな感じで実装してみた。
# app/validators/date_validator.rb class DateValidator < ActiveModel::EachValidator def validate_each(record, attribute, value) # 日付フォーマットのチェック unless /\A\d{1,4}\-\d{1,2}\-\d{1,2}\Z/ =~ value.to_s record.errors[attribute] << I18n.t('errors.messages.invalid_date_format') end # 日付の妥当性チェック begin (y, m, d) = value.split('-') Time.local(y, m, d, 0, 0, 0) rescue record.errors[attribute] << I18n.t('errors.messages.invalid_date') end end end