Самое простое и рабочее решение - использовать встроенную валидацию из Rails. Просто проверяет это так:
validates :dated_on, inclusion: { in: (Date.new(2000,1,1)..Date(2020,1,1)) }
если вам нужно подтвердить присутствие, просто добавьте еще одну проверку:
validates :occurred_at, presence: true, inclusion: { in: (Date.new(2000,1,1)..Date(2020,1,1)) }
Помните, что вы всегда можете использовать такие помощники, как 1.day.ago
или 1.year.from_now
для определения диапазонов.