# zipcode validation doesn't work

**URL:** <https://discuss.rubyonrails.org/t/zipcode-validation-doesnt-work/53193>\
**Category:** rubyonrails-talk\
**Created:** [July 26, 2010, 12:17am UTC](https://discuss.rubyonrails.org/t/zipcode-validation-doesnt-work/53193 "2010-07-26T00:17:09Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![badnaam](https://avatars.discourse-cdn.com/v4/letter/b/e36b37/32.png) [@badnaam](https://discuss.rubyonrails.org/u/badnaam)\
**Post date:** [July 26, 2010, 12:17am UTC](https://discuss.rubyonrails.org/t/zipcode-validation-doesnt-work/53193/1 "2010-07-26T00:17:09Z")

</div>

I am trying to do a very basic zipcode validation(zip is a int field in mysql).

validates\_presence\_of :zip, :message =\> "Can't be blank" validates\_format\_of :zip, :with =\> /^[0-9]{5}(-[0-9]{4})?$/, :message =\> "Invalid Zipcode"

No matter whatever valid 5 digit zip I enter, this does not work, but If I do a '12345'.match (/^[0-9]{5}(-[0-9]{4})?$/) it works just fine!

---

<div class="post-metadata">

**Author:** ![badnaam](https://avatars.discourse-cdn.com/v4/letter/b/e36b37/32.png) [@badnaam](https://discuss.rubyonrails.org/u/badnaam)\
**Post date:** [July 26, 2010, 12:20am UTC](https://discuss.rubyonrails.org/t/zipcode-validation-doesnt-work/53193/2 "2010-07-26T00:20:36Z")

</div>

It seems both validations fail, the message says "Can't be blank and shold be 5 digits", when its actually both.

---

<div class="post-metadata">

**Author:** ![hassan](https://sea2.discourse-cdn.com/rubyonrails/user_avatar/discuss.rubyonrails.org/hassan/32/714_2.png) [@hassan](https://discuss.rubyonrails.org/u/hassan)\
**Post date:** [July 26, 2010, 12:32am UTC](https://discuss.rubyonrails.org/t/zipcode-validation-doesnt-work/53193/3 "2010-07-26T00:32:44Z")

</div>

> I am trying to do a very basic zipcode validation

\*\* (zip is a int field in mysql) \*\*

> validates\_format\_of :zip, :with =\> /^[0-9]{5}(-[0-9]{4})?$/

Uh, you're trying to use a regular expression on an int? Off the top of my head that seems unlikely to work...

> No matter whatever valid 5 digit zip I enter, this does not work, but If I do a '12345'.match (/^[0-9]{5}(-[0-9]{4})?$/) it works just fine!

.. as the above would seem to confirm.

HTH,

---

<div class="post-metadata">

**Author:** ![badnaam](https://avatars.discourse-cdn.com/v4/letter/b/e36b37/32.png) [@badnaam](https://discuss.rubyonrails.org/u/badnaam)\
**Post date:** [July 26, 2010, 12:49am UTC](https://discuss.rubyonrails.org/t/zipcode-validation-doesnt-work/53193/4 "2010-07-26T00:49:14Z")

</div>

Thanks, I did change the field to varchar(5) as well, that doesn't work eitehr

---

<div class="post-metadata">

**Author:** ![badnaam](https://avatars.discourse-cdn.com/v4/letter/b/e36b37/32.png) [@badnaam](https://discuss.rubyonrails.org/u/badnaam)\
**Post date:** [July 26, 2010, 12:58am UTC](https://discuss.rubyonrails.org/t/zipcode-validation-doesnt-work/53193/5 "2010-07-26T00:58:04Z")

</div>

Nevermind, I did not put zip in attr\_accessible, that's why it was failing. Doh!!
