Use Faker gem to generate correlated city, postal code, country code values
You can customize based on locales: https://github.com/stympy/faker#customization
So you can create or modify a locale file, see this example: https://github.com/stympy/faker/blob/master/lib/locales/en-NEP.yml
Then you can set what the default country should be and also what states do you want to use