how to use ruby/rails to convert all caps to proper first letter cap, rest lower case?
If you can separate the states out, like you say, it's easy:
my_address_string.titlecase
It'll capitalize the first letter of every word (including some I'd rather it didn't, like "a" or "the", but hey...) and uncapitalize the rest. Sounds just like what you want.