Problems with validates_format_of


#1

hi,
i’m trying to validate the format of a date and have the following
regular code:

validates_presence_of :dob
validates_format_of :dob,
:with => /^[0-9]{4}[-][0-9]{2}[-][0-9]{2}$/,
:unless => Proc.new { |u| u.dob.blank? }

i’ve checked the regexp independently and it works, and i’ve put this
regexp with telephone, and it checks the dates correctly (telephone is a
integer type), however when i do it with dob it’ll give me some strange
results:
23-12-2008 will be valid, while 23-13-2008 won’t. so i’m guessing it’s
checking whether dates are valid completely independently from my
validations, however this isn’t what i want.

am i missing something here?
thanks
daniel


#2

the error message i get if i write 23-13-2008 is “dob can’t be blank”

Daniel F. wrote:

hi,
i’m trying to validate the format of a date and have the following
regular code:

validates_presence_of :dob
validates_format_of :dob,
:with => /^[0-9]{4}[-][0-9]{2}[-][0-9]{2}$/,
:unless => Proc.new { |u| u.dob.blank? }

i’ve checked the regexp independently and it works, and i’ve put this
regexp with telephone, and it checks the dates correctly (telephone is a
integer type), however when i do it with dob it’ll give me some strange


#3

On Oct 11, 1:41 am, Daniel F. removed_email_address@domain.invalid
wrote:

the error message i get if i write 23-13-2008 is “dob can’t be blank”

At the point the validation runs the string ‘23-13-2008’ has been
turned into an actual date (ie an instance of Time or Date depending
on your column type), so validating its format is nonsensical.

Fred


#4

thank you I just noticed this as you wrote it :frowning:
shit
i’ve been trying to fix this for four hours
damn ruby… :frowning:
Frederick C. wrote:

On Oct 11, 1:41�am, Daniel F. removed_email_address@domain.invalid
wrote:

the error message i get if i write 23-13-2008 is “dob can’t be blank”

At the point the validation runs the string ‘23-13-2008’ has been
turned into an actual date (ie an instance of Time or Date depending
on your column type), so validating its format is nonsensical.

Fred