Busca de Endereço pelo CEP em RubyOnRails - Correios

August 23rd, 2008 at 5:20 pm (Internet, Programação, Ruby, RubyOnRails, Serviços, Software)

Acabo de contribuir com o site Buscar Cep enviando um exemplo de busca de endereço pelo CEP, em RubyOnRails e usando AJAX. Bem simples, mas como faltava um exemplo em Rails resolvi fazer e publicar.

Bem útil para facilitar a vida de usuários já buscando quase todo endereço dele quando ele digita o cep, faltando ele colocar apenas o número.

O exemplo é um formulário que pede o cep e quando enviado exibe um formulário com o endereço, caso o cep seja inválido ou ocorra algum problema será exibida a mensagem no lugar do formulário para que o problema seja resolvido.

O código está em 3 arquivos, seguem eles e a aplicação inteira em um zip. Pretendo colocar um demo no ar também, informo aqui se fizer.

Controlador: cadastro_controller.rb
Página inicial: index.rhtml
Página lida por ajax: buscarcep.rhtml

Aplicação Inteira: buscarcep.zip

Comments

Confirguração em arquivo externo YAML, simples e rápido no RubyOnRails

September 12th, 2006 at 9:43 pm (Programação, Ruby, RubyOnRails)

Fiz hoje a tarde esse simples código para eu nunca mais precisar colocar configuação hardcoded (dentro do código), e sim em um arquivo externo como este que no rails eu adicionei em config/site.yml:

admin_email: admin@mysite.com
url: http://www.mysite.com
site:
--title: My Site
--description:
--keywords:

Atenção os — são 2 espaços, yaml exige que você use espaços invês de tabs, configure seu editor para usar 2 espaços como tab, inflizmente o wordpress não mantém os espaços corretamente, será que o typo faria isso?

No final do config/environment.rb, ou a inicialização de qualquer programa em ruby, coloque as seguintes linhas:

config = YAML::load(File.open("#{RAILS_ROOT}/config/site.yml"))
config.each { |key, value| eval "$#{key.upcase} = #{value.inspect}" }

Elas leem o arquivo e definem as variáveis globais, neste caso você teria as seguintes variáveis globais:
$ADMIN_EMAIL, $URL e $SITE, sendo a última um hash, com por exemplo $SITE[’title’].

Qualquer dúvida ou problema podem comentar.
Atualizado em 03/2007.