Add this line to your application's Gemfile:
gem 'validates-correios-cep'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install validates-correios-cep
class Person < ActiveRecord::Base
validates :my_attribute, correios_cep: true
# or
validates_correios_cep_of :my_attribute
end
class Person
include ActiveModel::Model
validates :my_attribute, correios_cep: true
# or
validates_correios_cep_of :my_attribute
end
To customize your error messages you can create a locale file like this:
en:
correios_cep:
errors:
messages:
not_exists: '%{zipcode} is not a existent Brazilian zipcode'
connection_failed: 'failure on connection with Brazilian Correios API'
invalid: '%{zipcode} is not a valid Brazilian zipcode'
timeouted: 'timeout with Brazilian Correios API'
The %{zipcode} contains the zipcode value, filled by user.
Send a pull request! Fix the translations or create it for some missing locale. Help us to improves the quality of translations!