Other validations fail even if there is no validates_presence_of

Hi,

I have a set of validations like:
validates_format_of :city,
                       :with => /^[a-zA-Z\s\'\&]+$/,
                       :message => "is not a valid name"

  validates_format_of :zip,
                      :with => /^[\d]{5}+$/,
                      :allow_nil => true,
                      :message => "is not a valid zip code"

But I don't have a validates_presence_of :city, :zip.

I want to validate the format only if user has entered some value into
the fields. But both the _format_of hooks are trying to validate an
empty value. Any idea how I can stop this behavior?

Thanks.

Add :allow_nil => true to the city validation. You only have it on the
zip code validation.

-Bill

Love AJAX wrote:

:allow_nil => true didn't work on these validations. Instead I had to
do something like :if => Proc.new{|profile| profile != ""}. This works
fine. So my code now looks like this:

  validates_format_of :zip,
                      :with => /^[\d]{5}+$/,
                      :if => Proc.new {|profile| profile.zip != ""},
                      :message => "is not a valid zip code"

validates_format_of :city,
                       :with => /^[a-zA-Z\s\'\&]+$/,
                       :if => Proc.new {|profile| profile.city != ""},
                       :message => "is not a valid name"

See the last sentence of
http://api.rubyonrails.com/classes/ActiveRecord/Validations/ClassMethods.html#M000958.

Thanks much.