Unfortunately this plugin uses full state names instead of abbeviations, both in the view and in the values that are submitted to the database.
I want
<option value="NY">New York
instead of
<option value="New York">New York
The change I want is easy to achieve by modifying /lib/state_select.rb
Comment out the values for US_STATES and add this bit of code instead. Note Puerto Rico and outlying territories have been omitted, since these are considered international locations in my program.
US_STATES=[But what happens to the data that has already started been saved with long unabbreviated state names? I need to update that too. I could have written a migration file to do this - but instead just used quick and dirty sql update statements.
[ "Alabama", "AL" ],
[ "Alaska", "AK" ],
[ "Arizona", "AZ" ],
[ "Arkansas", "AR" ],
[ "California", "CA" ],
[ "Colorado", "CO" ],
[ "Connecticut", "CT" ],
[ "Delaware", "DE" ],
[ "District Of Columbia", "DC" ],
[ "Florida", "FL" ],
[ "Georgia", "GA" ],
[ "Hawaii", "HI" ],
[ "Idaho", "ID" ],
[ "Illinois", "IL" ],
[ "Indiana", "IN" ],
[ "Iowa", "IA" ],
[ "Kansas", "KS" ],
[ "Kentucky", "KY" ],
[ "Louisiana", "LA" ],
[ "Maine", "ME" ],
[ "Maryland", "MD" ],
[ "Massachusetts", "MA" ],
[ "Michigan", "MI" ],
[ "Minnesota", "MN" ],
[ "Mississippi", "MS" ],
[ "Missouri", "MO" ],
[ "Montana", "MT" ],
[ "Nebraska", "NE" ],
[ "Nevada", "NV" ],
[ "New Hampshire", "NH" ],
[ "New Jersey", "NJ" ],
[ "New Mexico", "NM" ],
[ "New York", "NY" ],
[ "North Carolina", "NC" ],
[ "North Dakota", "ND" ],
[ "Ohio", "OH" ],
[ "Oklahoma", "OK" ],
[ "Oregon", "OR" ],
[ "Pennsylvania", "PA" ],
[ "Rhode Island", "RI" ],
[ "South Carolina", "SC" ],
[ "South Dakota", "SD" ],
[ "Tennessee", "TN" ],
[ "Texas", "TX" ],
[ "Utah", "UT" ],
[ "Vermont", "VT" ],
[ "Virginia", "VA" ],
[ "Washington", "WA" ],
[ "West Virginia", "WV" ],
[ "Wisconsin", "WI" ],
[ "Wyoming", "WY" ] ] unless const_defined?("US_STATES")
This is the code that I used. It's very straightforward, but I'm posting it here anyway with the hope that someone can copy/paste it and save themself the hassle of writing 50+ updates from scratch.
update addresses set state = 'AL' where [state]= 'Alabama'
update addresses set state = 'AK' where [state]= 'Alaska'
update addresses set state = 'AZ' where [state]= 'Arizona'
update addresses set state = 'AR' where [state]= 'Arkansas'
update addresses set state = 'CA' where [state]= 'California'
update addresses set state = 'CO' where [state]= 'Colorado'
update addresses set state = 'CT' where [state]= 'Connecticut'
update addresses set state = 'DE' where [state]= 'Delaware'
update addresses set state = 'DC' where [state]= 'District Of Columbia'
update addresses set state = 'FL' where [state]= 'Florida'
update addresses set state = 'GA' where [state]= 'Georgia'
update addresses set state = 'HI' where [state]= 'Hawaii'
update addresses set state = 'ID' where [state]= 'Idaho'
update addresses set state = 'IL' where [state]= 'Illinois'
update addresses set state = 'IN' where [state]= 'Indiana'
update addresses set state = 'IA' where [state]= 'Iowa'
update addresses set state = 'KS' where [state]= 'Kansas'
update addresses set state = 'KY' where [state]= 'Kentucky'
update addresses set state = 'LA' where [state]= 'Louisiana'
update addresses set state = 'ME' where [state]= 'Maine'
update addresses set state = 'MD' where [state]= 'Maryland'
update addresses set state = 'MA' where [state]= 'Massachusetts'
update addresses set state = 'MI' where [state]= 'Michigan'
update addresses set state = 'MN' where [state]= 'Minnesota'
update addresses set state = 'MS' where [state]= 'Mississippi'
update addresses set state = 'MO' where [state]= 'Missouri'
update addresses set state = 'MT' where [state]= 'Montana'
update addresses set state = 'NE' where [state]= 'Nebraska'
update addresses set state = 'NV' where [state]= 'Nevada'
update addresses set state = 'NH' where [state]= 'New Hampshire'
update addresses set state = 'NJ' where [state]= 'New Jersey'
update addresses set state = 'NM' where [state]= 'New Mexico'
update addresses set state = 'NY' where [state]= 'New York'
update addresses set state = 'NC' where [state]= 'North Carolina'
update addresses set state = 'ND' where [state]= 'North Dakota'
update addresses set state = 'OH' where [state]= 'Ohio'
update addresses set state = 'OK' where [state]= 'Oklahoma'
update addresses set state = 'OR' where [state]= 'Oregon'
update addresses set state = 'PA' where [state]= 'Pennsylvania'
update addresses set state = 'RA' where [state]= 'Rhode Island'
update addresses set state = 'SC' where [state]= 'South Carolina'
update addresses set state = 'SD' where [state]= 'South Dakota'
update addresses set state = 'TN' where [state]= 'Tennessee'
update addresses set state = 'TX' where [state]= 'Texas'
update addresses set state = 'UT' where [state]= 'Utah'
update addresses set state = 'VT' where [state]= 'Vermont'
update addresses set state = 'VA' where [state]= 'Virginia'
update addresses set state = 'WA' where [state]= 'Washington'
update addresses set state = 'WV' where [state]= 'West Virginia'
update addresses set state = 'WI' where [state]= 'Wisconsin'
update addresses set state = 'WY' where [state]= 'Wyoming'
No comments:
Post a Comment