views:

454

answers:

2

Does rails do any validation for datetime? I found a plugin http://github.com/adzap/validates_timeliness/tree/master, but it seems like something that should come in out of the box.

+3  A: 

There's no built-in ActiveRecord validator for DateTimes, but you can easily add this sort of capability to an ActiveRecord model, without using a plugin, with something like this:

class Thing < ActiveRecord::Base
  validate :happened_at_is_valid_datetime

  def happened_at_is_valid_datetime
    errors.add(:happened_at, 'must be a valid datetime') if ((DateTime.parse(happened_at) rescue ArgumentError) == ArgumentError)
  end
end
Gabe Hollombe
Perfect, thanks Gabe.
Daniel
I'm glad this helped. It's not the most glorious code, but it works.
Gabe Hollombe
A: 

It's quite necessary to validate dates. With the default Rails form helpers you could select dates like September 31st.

Ariejan