Forum: Ruby on Rails Validation Problem

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
8ee257799a0f1898dd1951bd2843bc71?d=identicon&s=25 Eric Marthinsen (emarthinsen)
on 2008-12-31 06:56
(Received via mailing list)
Hello-

I'm trying to do something pretty basic - validate a form field
against a regex. Here's the line of my model that adds the validation:

validates_format_of :zipcode, :with => /\d{5}(-\d{4})?/, :message =>
'is failing the regex'

When I enter the value "12345" into the form field, it comes back and
tells me that "Zipcode is failing the regex". What's odd is that I've
gotten sporadic success, where the validations will pass - sometimes
with values that failed previously.

I feel confident of the regex itself and testing it in IRB yields the
results I would expect. Once I use it in the validation, then it stops
working.

Does anyone know what might be going on? Failing that, any ideas for
where to start troubleshooting this would be appreciated.

Regards,
Eric
8ee257799a0f1898dd1951bd2843bc71?d=identicon&s=25 Eric Marthinsen (emarthinsen)
on 2008-12-31 07:07
(Received via mailing list)
Ah, I just figured it out!

As an aside, and I'm not sure if anyone else notices the same thing,
but it seems like the easiest way for me to solve my own problem is to
ask for help. Never fails.

The issue, in case someone else runs into it, was that I had
accidentally created a new method on my class called "zipcode" (it
returned a ZipCode object, where the zipcode is a string). Somehow,
perhaps based on whether or not zipcode was set, the validation was
using the string sometimes and the object the rest of the time (yes,
yes, I know strings are objects too). This is why my results were
erratic.

Regards,
Eric

On Dec 31, 12:56 am, emarthinsen <emarthin...@agilecommerce.com>
This topic is locked and can not be replied to.