I’m running into an small issue with searching a zip codes table,
where some zip codes contain 1 or more leading zeros. This problem
could be fixed with some database level hacking – but I’d rather
attack the problem in rails.
Zip codes are stored in the zip code table with leading zeros dropped.
01234 becomes 1234. Thus, when someone searches via the website for
012345, it will not find any results.
I’m looking to write a method (probably in the Zipcode model) to
remove any leading zeros from an incoming search request, before it
gets passed into sql calls.
I looked into callbacks, but those appears to only be useful when
creating/saving/updating/deleting data, whereas I need to address
searching.
Any suggestions on the correct/best way to do this? Again, I’m
looking for a rails solution, not a database level solution.
Plus just saying reg exp is not very helpful. I’m not sure how to trap
the
call before it reaching sql (assuming that is the best way to do it)
which
is really what I’m trying to figure out.
I’m looking to write a method (probably in the Zipcode model) to
remove any leading zeros from an incoming search request, before it
gets passed into sql calls.
I looked into callbacks, but those appears to only be useful when
creating/saving/updating/deleting data, whereas I need to address
searching.
Any suggestions on the correct/best way to do this? Again, I’m
looking for a rails solution, not a database level solution.
Maybe not ideal, but you could always just call to_i on the parameter
that gets passed into your find method. That should strip it.
I ended up solving the problem using Philip’s solution (thanks).
Curtis, thanks for the recommendation, but zero is a valid leading value
for
some zip codes, so only doing a range of 1-9 wouldn’t be as tight of a
check
as I would’ve liked.
Thank you all for your help and replies.
Jason S.
“I’m going to live forever or die trying.”
On Sun, Jan 3, 2010 at 4:18 PM, Curtis Jennings Schofield < [email protected]> wrote:
is really what I’m trying to figure out.
On Sun, Jan 3, 2010 at 2:32 PM, tom [email protected] wrote:
Jason - Thank you - If i understand your problem in correctly - you
wanted to turn the value into the database into a non-zipcode format
to allow for people to search without including the leading zero?
Also - thank you for the information about zero being a leading diget
for zip codes.