<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Saga do programador &#187; Rails</title>
	<atom:link href="http://www.sagadoprogramador.com.br/tag/rails/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sagadoprogramador.com.br</link>
	<description></description>
	<lastBuildDate>Wed, 18 Aug 2010 13:34:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Aprenda Rails. Estude Ruby!</title>
		<link>http://www.sagadoprogramador.com.br/2009/04/aprenda-rails-estude-ruby/</link>
		<comments>http://www.sagadoprogramador.com.br/2009/04/aprenda-rails-estude-ruby/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 02:46:57 +0000</pubDate>
		<dc:creator>Iuri Menescal</dc:creator>
				<category><![CDATA[OO]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby para iniciantes]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[Iniciantes]]></category>

		<guid isPermaLink="false">http://www.sagadoprogramador.com.br/?p=199</guid>
		<description><![CDATA[Desde que fui apresentado ao Rails virei um entusiasta desse framework, e em pouco tempo virei um evangelizador do Rails, não como o Carlos Brando ou o Akita que disseminam essa tecnologia pelo Brasil a fora, mas entre o grupo que conheço, programadores Delphi, Java, .Net e até PHP.

Muitos se animaram e assim como eu estão estudando esse framework, mas uma coisa que venho notando é que as pessoas que querem aprender Rails, começam a estudar Rails sem nunca ter visto Ruby.]]></description>
			<content:encoded><![CDATA[<p>Desde que fui apresentado ao Rails virei um entusiasta desse framework, e em pouco tempo virei um evangelizador do Rails, não como o <a href="http://www.nomedojogo.com/">Carlos Brando</a> ou o <a href="http://www.akitaonrails.com/">Akita</a> que disseminam essa tecnologia pelo Brasil a fora, mas entre o grupo que conheço, programadores Delphi, Java, .Net e até PHP.</p>
<p>Muitos se animaram e assim como eu estão estudando esse framework, mas uma coisa que venho notando é que as pessoas que querem aprender Rails, começam a estudar Rails sem nunca ter visto Ruby.</p>
<p>Isso é um erro comum e que demora para ser percebido, por conta da facilidade e da agilidade do Rails em gerar resultados logo no primeiro dia de estudos, o que acaba causando uma falsa impressão de evolução e te transformando em um <a href="http://pt.wikipedia.org/wiki/Code_monkey">"Code monkey"</a>.</p>
<p>Acabamos escrevendo código sem saber o significado, e convenhamos para que vem de linguagens  como (Delphi, C#, etc..) é um mundo completamente diferente.<br />
(<em>No decorrer dessa sequencia de post`s vou ser obrigado a citar novamente esse exemplo, por isso vamos utilizar o termo "Linguagens chatas" <img src='http://www.sagadoprogramador.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </em>)</p>
<p>Pode parecer meio radical, mas antes do fim dessa série você vai notar, que alem de tudo Ruby é divertido!</p>
<p><span id="more-199"></span></p>
<p>É muito normal uma pessoa que só desenvolve em <strong><em>Linguagens chatas</em></strong> ter dificuldade para entender o código abaixo:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">    sexo = <span style="color:#996600;">&quot;M&quot;</span>
   nome = <span style="color:#996600;">&quot;Iuri&quot;</span>
   <span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">&quot;Ola &quot;</span> <span style="color:#006600; font-weight:bold;">&amp;</span>lt;<span style="color:#006600; font-weight:bold;">&amp;</span>lt; <span style="color:#996600;">&quot;sr#S#&quot;</span>.<span style="color:#CC0066; font-weight:bold;">gsub</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">/</span><span style="color:#008000; font-style:italic;">#S#/,sexo == &quot;F&quot;?&quot;a.&quot;:&quot;.&quot;) &amp;lt;&amp;lt; nome</span></pre></div></div>

<p><em>Pode apostar, o resultado desse códito seria: "Ola sr. Iuri"</em></p>
<p>Por isso resolvi publicar uma serie de artigos falando mais sobre Ruby.<br />
Então já para dar inicio, vou terminar esse post com uma breve explicação.</p>
<p>O que é Ruby?</p>
<p>Ruby é uma linguagem dinâmica e de tipagem forte para programação OO.<br />
Na verdade Ruby é muito mais do que isso, mas isso você vai descobrir no decorrer dos nossos estudos.</p>
<p>O Ruby foi inventado por <a href="http://en.wikipedia.org/wiki/Yukihiro_Matsumoto">Yukihiro Matsumoto</a>.<br />
É uma linguagem totalmente livre, (Usar, Copiar, Modificar...)</p>
<p>O Ruby é uma linguagem 100% orientada a objetos, tudo em Ruby é objeto, qualquer variável em Ruby aponta para um objeto.</p>
<p>Por exemplo:</p>
<div id="attachment_204" class="wp-caption aligncenter" style="width: 308px"><a href="http://www.sagadoprogramador.com.br/wp-content/uploads/2009/04/exemplo_classe.jpg"><img class="size-full wp-image-204" src="http://www.sagadoprogramador.com.br/wp-content/uploads/2009/04/exemplo_classe.jpg" alt="Exemplo de Classe" width="298" height="146" /></a><p class="wp-caption-text">Exemplo de Classe</p></div>
<p>Quer mais provas?<br />
<a href="http://www.sagadoprogramador.com.br/wp-content/uploads/2009/04/exemplo_methods.jpg"><img class="alignnone size-full wp-image-205" src="http://www.sagadoprogramador.com.br/wp-content/uploads/2009/04/exemplo_methods.jpg" alt="" width="500" height="250" /></a></p>
<p><strong><em>O atributo "methods" exibe todos as funções disponíveis na classe</em></strong></p>
<p>Como eu disse no inicio o Ruby possui tipagem forte, vamos ver um exemplo:<br />
<a href="http://www.sagadoprogramador.com.br/wp-content/uploads/2009/04/tipagem_forte1.jpg"><img class="aligncenter size-full wp-image-207" title="Tipagem forte" src="http://www.sagadoprogramador.com.br/wp-content/uploads/2009/04/tipagem_forte1.jpg" alt="" width="436" height="195" /></a></p>
<p><em>"Ué você não falou que tem tipagem forte? como eu consegui atribuir uma string em um numérico?"</em><br />
Sim tem tipagem forte, como eu disse no inicio, variaveis são referencias para objetos, nesse caso eu apenas apontei a variavel para um novo objeto.<br />
Agora vamos ver o exemplo abaixo:<br />
<a href="http://www.sagadoprogramador.com.br/wp-content/uploads/2009/04/tipagem_forte2.jpg"><img class="aligncenter size-full wp-image-210" title="Tipagem forte" src="http://www.sagadoprogramador.com.br/wp-content/uploads/2009/04/tipagem_forte2.jpg" alt="" width="345" height="257" /></a></p>
<p>Bom, por enquanto é só. No próximo post vamos começar a colcar a mão na massa, ai sim você vai começar a descobrir como Ruby é divertido <img src='http://www.sagadoprogramador.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Abraço!</p>
<p>Iuri Menescal<br />
<em>Diga não as drogas, não use <a href="http://www.microsoft.com/windows/products/winfamily/ie/default.mspx">IE</a>!</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sagadoprogramador.com.br/2009/04/aprenda-rails-estude-ruby/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Retrospectiva 2008 – Planos para 2009 / Iuri</title>
		<link>http://www.sagadoprogramador.com.br/2009/01/retrospectiva-2008-%e2%80%93-planos-para-2009-iuri/</link>
		<comments>http://www.sagadoprogramador.com.br/2009/01/retrospectiva-2008-%e2%80%93-planos-para-2009-iuri/#comments</comments>
		<pubDate>Sun, 04 Jan 2009 14:09:21 +0000</pubDate>
		<dc:creator>Iuri Menescal</dc:creator>
				<category><![CDATA[retrospectiva]]></category>
		<category><![CDATA[trabalho]]></category>
		<category><![CDATA[Arquitetura]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.sagadoprogramador.com.br/?p=146</guid>
		<description><![CDATA[
Cedendo ao convite do Luiz, vou escrever a minha retrospectiva também. Trabalhamos na mesma equipe e isso pode tornar o que vou escrever uma cópia do post dele, já que isso pode acontecer, vou colar alguns trechos aqui na cara de pau mesmo hehehehe!

Post do Luiz
O ano de 2008 foi um ano muito bom profissionalmente, [...]]]></description>
			<content:encoded><![CDATA[<p><!--StartFragment--></p>
<p class="MsoNormal">Cedendo ao convite do Luiz, vou escrever a minha retrospectiva também. Trabalhamos na mesma equipe e isso pode tornar o que vou escrever uma cópia do post dele, já que isso pode acontecer, vou colar alguns trechos aqui na cara de pau mesmo hehehehe!</p>
<p class="MsoNormal"><!--StartFragment--></p>
<p class="MsoNormal"><strong><em><span style="text-decoration: underline;">Post do Luiz</span></em></strong></p>
<p class="MsoNormal"><strong><em><span style="text-decoration: underline;"><em>O ano de 2008 foi um ano muito bom profissionalmente, neste ano consegui mudar de tecnologia no meu trabalho, consegui aplicar algumas das principais técnicas que estudo há alguns anos.</em></span></em></strong></p>
<p><span id="more-146"></span></p>
<div>
<p class="MsoNormal"><strong><span><span style="color: #ff0000;">(Eu também a única diferença ai é esse “há alguns anos” ele já deve estudar o dobro de tempo do que eu :p)</span></span></strong></p>
<p class="MsoNormal"><!--more--><!--StartFragment--></p>
<p class="MsoNormal"><span>Acho que o meu primeiro feito importante em 2008 aqui no trabalho, foi a implantação do Scrum dentro da minha gerencia. Perturbei muita gente nesse período dentro e fora da empresa, vou até aproveitar para agradecer ao <a href="http://blog.improveit.com.br/" target="_blank">Vinicius Telles</a> e o <a href="http://gc.blog.br/" target="_blank">Guilherme Chapiewski</a> pela paciência, perturbei muito esses caras nesse período hehehe! (Pretendo publicar um post mais detalhado sobre essa empreitada).</span></p>
<p class="MsoNormal"><span><span> </span>Uma coisa bem legal que a mudança de tecnologia me proporcionou foi reescrever uma parte do sistema que sou responsável em Java utilizando uma arquitetura bem bacana. Com uma grande ajuda de Luiz e de um outro colega de trabalho o Marcus Eliziário. Substituímos um serviço feito em Delphi5 para Java onde eu tive a oportunidade de aprender bastante coisa como JMS, Spring, Interceptor, Testes automatizados e outras coisas.</span></p>
<p><!--EndFragment--> </p>
<p class="MsoNormal"><!--StartFragment--></p>
<p class="MsoNormal"><strong><em><span style="text-decoration: underline;">Post do Luiz</span></em></strong><em></em></p>
<p class="MsoNormal"><em><span><span style="text-decoration: underline;">Em 2008 eu decidi que quero desenvolver aplicações para Web. Para isso comecei a estudar Ruby On Rails. Tenho feito alguns protótipos de aplicações, e tenho evoluído bem. Atualmente estou no meu primeiro projeto pessoal utilizando Rails.</span></span></em></p>
<div>
<p class="MsoNormal"><strong><span><span style="color: #ff0000;">(Eu também a única diferença ai é que estou no meu segundo projeto em Rails. O que me empolgou bastante nem foi tanto o Rails, mas o Ruby, uma linguagem muito agradável que da prazer de programar)</span></span></strong></p>
<p class="MsoNormal"><!--more--></p>
<p class="MsoNormal"><span>Alem de ficar super empolgado com a linguagem, o que me empolgou bastante também foi a comunidade, sempre disposta a ajudar e com a filosofia open source na veia. Esse ano participei da Rails Summit Latin América, foi um puta evento! Já sai de lá com a certeza de que vou no próximo, não vou entrar em detalhes sobre o evento, pois o que não falta na web é material sobre isso. O grande barato foi que o fato de estudar Rails me proporcionou a oportunidade de me aprofundar mais em outras linguagens como javascript e conhecer outros FrameWorks como o Jquery.<em> </em></span></p>
<p class="MsoNormal"><span>E para terminar os acontecimentos de 2008 não poderia deixar de mencionar a aquisição do meu MacBook, coisa que ainda ta na lista para 2009 do Luiz e do Serginho hahahaha!!!! Eu já tenho o meu!!! :p</span></p>
<p> </p></div>
<p><!--StartFragment--></p>
<p class="MsoNormal"><span>Planos para 2009:</span></p>
<p class="MsoNormal"> </p>
<ul>
<li>Continuar estudando Ruby</li>
<li>Fazer um curso de mestre cervejeiro hehehe!</li>
<li>Implantar um servidor de integração e evangelizar mais as técnicas de testes automatizados aqui na empresa</li>
<li>Estudar musica <img src='http://www.sagadoprogramador.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
<li>Fazer um curso de culinária :p</li>
<li>Casar</li>
<li>Comprar uma <a href="http://www.yamaha-motor.com.br/cmi/pagina.aspx?716" target="_blank">Fazer 600</a>!!</li>
</ul>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Bom, vou aproveitar e reforçar o convite para o Serginho escrever a sua retrospectiva, acho que esse é o que mais teve mudanças em 2008.</span></p>
<p><!--EndFragment--><!--EndFragment--> </div>
<p><!--EndFragment--> </p>
<p><!--EndFragment--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sagadoprogramador.com.br/2009/01/retrospectiva-2008-%e2%80%93-planos-para-2009-iuri/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Receita para um formulário com busca de cep à la Rails :p</title>
		<link>http://www.sagadoprogramador.com.br/2008/11/receita-para-um-formulario-com-busca-de-cep-a-la-rails-p/</link>
		<comments>http://www.sagadoprogramador.com.br/2008/11/receita-para-um-formulario-com-busca-de-cep-a-la-rails-p/#comments</comments>
		<pubDate>Sat, 15 Nov 2008 16:47:18 +0000</pubDate>
		<dc:creator>Iuri Menescal</dc:creator>
				<category><![CDATA[Rails]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[brazilian-rails]]></category>
		<category><![CDATA[busca de cep]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[JSon]]></category>

		<guid isPermaLink="false">http://www.sagadoprogramador.com.br/?p=23</guid>
		<description><![CDATA[Receita para um formulário com busca de cep  utilizando Rails, Brazilian-Rails, Jquery e JSon]]></description>
			<content:encoded><![CDATA[<p><strong>Ingredientes:</strong></p>
<ul>
<li>Brazilian-rails</li>
<li>Jquery</li>
<li>Ruby-json</li>
</ul>
<p><strong>Modo de preparo:</strong></p>
<p>Coloque uma porção generosa de utilitários que facilitam o dia a dia de nos Brasileiros em seu caldeirão Rails:</p>
<pre>&gt; gem --install brazilian-rails</pre>
<p><em>"O gem brazilian-rails possui vários ingredientes para temperar a sua aplicação, mas no momento vamos nos concentrar na busca por cep. Você pode saber mais sobre o brazilian-rails no site da <a href="http://www.improveit.com.br/software_livre/brazilian_rails">improve It</a>."</em><span id="more-23"></span></p>
<p>Em seguida acrescente uma medida de ruby-json:</p>
<pre>&gt; gem –install ruby-json</pre>
<p><em>"O ruby-json é um utilitário para serializar as suas classes ruby para os padrões Json."</em></p>
<p>Só para lembrar vamos utilizar Jquery também, mas isso já é um ingrediente padrão em qualquer receita Web sua, certo?<br />
Não?? Como assim? Você ainda não utiliza JQuery? putz.. tsc.. tsc..<br />
Se você ainda não usa, chegou a hora. <a href="http://jquery.com">http://jquery.com/</a> Instale na pasta /public/javascript na estrutura de diretórios do seu projeto Rails.</p>
<p>(Pretendo colocar alguns tutoriais de Jquery aqui no blog em breve ou nem tão breve assim rs.. <em>"O blog é meu e eu post a hora que eu quiser hahahaa!"</em>)</p>
<p>Bom, agora que temos todos os ingredientes necessários em seus devidos lugares, deixe eles cozinhando em quanto preparamos o nosso prato.</p>
<p>No controller, vamos criar um método para fazer a busca do cep e retornar o resultado para o cliente utilizando Json.<br />
<strong>Você já tem o seu formulário pronto né? (model, view, controller)</strong></p>
<p>Não??<br />
<strong> **##%%!!</strong><br />
Você só quer moleza em? :p</p>
<p>Quer tudo na mão! ok ok vou fazer do zero, mas vê se presta atenção nessa porra e não vai só copiar e colar o código, pois é tão fácil que até comigo explicando você vai entender hehehe!</p>
<p>Vamos criar um controller:</p>
<pre> &gt; script/generate controller enderecos</pre>
<p>Em seguida edite o seu controller enderecos_controller.rb</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
</pre></td><td class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;">#classe do utilitario para serializar as classes ruby para o padrão json</span>
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'json/objects'</span>
&nbsp;
  <span style="color:#9966CC; font-weight:bold;">def</span> localizar_endereco
      retorno = <span style="color:#006666;">1</span>
      <span style="color:#008000; font-style:italic;"># Classe do brazilian-rails responsavél pela busca de endereco.</span>
      <span style="color:#0066ff; font-weight:bold;">@endereco</span> = BuscaEndereco.<span style="color:#9900CC;">por_cep</span> params<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#ff3333; font-weight:bold;">:cep</span><span style="color:#006600; font-weight:bold;">&#93;</span>
      endereco = <span style="color:#0066ff; font-weight:bold;">@endereco</span>.<span style="color:#9900CC;">fetch</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">0</span><span style="color:#006600; font-weight:bold;">&#41;</span>
      numero = <span style="color:#0066ff; font-weight:bold;">@endereco</span>.<span style="color:#9900CC;">fetch</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#41;</span>
      bairro = <span style="color:#0066ff; font-weight:bold;">@endereco</span>.<span style="color:#9900CC;">fetch</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">2</span><span style="color:#006600; font-weight:bold;">&#41;</span>
      estado = <span style="color:#0066ff; font-weight:bold;">@endereco</span>.<span style="color:#9900CC;">fetch</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">3</span><span style="color:#006600; font-weight:bold;">&#41;</span>
      cidade = <span style="color:#0066ff; font-weight:bold;">@endereco</span>.<span style="color:#9900CC;">fetch</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">4</span><span style="color:#006600; font-weight:bold;">&#41;</span>
     <span style="color:#9966CC; font-weight:bold;">rescue</span>
        retorno = <span style="color:#006666;">0</span>
     <span style="color:#9966CC; font-weight:bold;">ensure</span>
        <span style="color:#008000; font-style:italic;"># preste atenção nesse bloco e veja como é dificil serializar um objeto JSon no Ruby</span>
        <span style="color:#008000; font-style:italic;"># objeto = {:nome do atributo =&amp;gt; valor do atributo}</span>
        data = <span style="color:#006600; font-weight:bold;">&#123;</span>:retorno =<span style="color:#006600; font-weight:bold;">&amp;</span>gt; retorno, <span style="color:#ff3333; font-weight:bold;">:endereco</span> =<span style="color:#006600; font-weight:bold;">&amp;</span>gt; endereco,
                <span style="color:#ff3333; font-weight:bold;">:bairro</span> =<span style="color:#006600; font-weight:bold;">&amp;</span>gt; bairro, <span style="color:#ff3333; font-weight:bold;">:cidade</span> =<span style="color:#006600; font-weight:bold;">&amp;</span>gt; cidade, <span style="color:#ff3333; font-weight:bold;">:estado</span> =<span style="color:#006600; font-weight:bold;">&amp;</span>gt; estado<span style="color:#006600; font-weight:bold;">&#125;</span>
    render <span style="color:#ff3333; font-weight:bold;">:text</span> =<span style="color:#006600; font-weight:bold;">&amp;</span>gt; data.<span style="color:#9900CC;">to_json</span>  <span style="color:#008000; font-style:italic;">#aqui acontece a mágica!</span>
  <span style="color:#9966CC; font-weight:bold;">end</span></pre></td></tr></table></div>

<p>Vamos criar um formulário para testar a nosso busca:<br />
Crie um arquivo /app/views/enderecos/index.html.erb e logo depois da tag "html" insira o código abaixo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">  &lt;!-- Arquivo do framework jquery --&gt;
  &lt;script src=&quot;/javascripts/jquery.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
  Busca de endereço por cep
&lt;!-- Aqui vai o nosso código utilizando Jquery --&gt;
<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
 $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#btncep&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>$.<span style="color: #660066;">trim</span><span style="color: #009900;">&#40;</span>endereco_cep.<span style="color: #660066;">value</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> 
    <span style="color: #339933;">&lt;!--</span> Aqui é uma firula<span style="color: #339933;">,</span> para o usuário não achar que não esta acontecendo nada<span style="color: #339933;">--&gt;</span>
      $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#lbcep&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot; Pesquisando cep...&quot;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #339933;">&lt;!--</span> função <span style="color: #000066; font-weight: bold;">do</span> JQuery que Recebe o objeto serializado via ajax. <span style="color: #339933;">--&gt;</span>
        <span style="color: #339933;">&lt;!--</span> Ta vendo como o JQuery é foda<span style="color: #339933;">?</span> <span style="color: #339933;">--&gt;</span>
      $.<span style="color: #660066;">getJSON</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;/enderecos/localizar_endereco&quot;</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span> cep<span style="color: #339933;">:</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#endereco_cep&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>json<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
      <span style="color: #339933;">&lt;!--</span> Atribuindo os valores para os componentes da página<span style="color: #339933;">--&gt;</span>
	<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>json.<span style="color: #660066;">retorno</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#endereco_endereco&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span>json.<span style="color: #660066;">endereco</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#endereco_bairro&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span>json.<span style="color: #660066;">bairro</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#endereco_cidade&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span>json.<span style="color: #660066;">cidade</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#endereco_estado&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span>json.<span style="color: #660066;">estado</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#endereco_numero&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #000066;">focus</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	   <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
	      <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Cep não encontrado.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	   <span style="color: #009900;">&#125;</span>
	   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#lbcep&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot; cep:&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> 
	<span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Informe um cep.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

<p>Agora vamos colocar o código do formulário no "body" da nossa página:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;body&gt;
&lt;form id=&quot;frmBuscaCep&quot; &gt;
  &lt;fieldset&gt;
    &lt;legend&gt;Endereço&lt;/legend&gt;
    &lt;table&gt;
      &lt;tr&gt;&lt;td&gt;
	&lt;label for=&quot;endereco_cep&quot; id=&quot;lbcep&quot;&gt; cep:&lt;/label&gt;&lt;br /&gt;
	&lt;input type=&quot;text&quot; id=&quot;endereco_cep&quot; name=&quot;endereco[cep]&quot; size=&quot;12&quot; /&gt;
	&lt;a id=&quot;btncep&quot; href=&quot;#&quot;&gt; Pesquisar Cep&lt;/a&gt;&lt;span id=&quot;msgbuscacep&quot;&gt;&lt;/span&gt;
      &lt;/td&gt;&lt;/tr&gt;
     &lt;tr&gt;&lt;td&gt;
	&lt;label for=&quot;endereco_endereco&quot;&gt; endereco:&lt;/label&gt;&lt;br /&gt;
	&lt;input type=&quot;text&quot; id=&quot;endereco_endereco&quot; name=&quot;endereco[endereco]&quot; size=&quot;50&quot; /&gt;
     &lt;/td&gt;&lt;td&gt;
	&lt;label for=&quot;endereco_numero&quot;&gt; numero:&lt;/label&gt;&lt;br /&gt;
	&lt;input type=&quot;text&quot; id=&quot;endereco_numero&quot; name=&quot;endereco[numero]&quot; size=&quot;10&quot; /&gt;			  
     &lt;/td&gt;&lt;/tr&gt;
   &lt;/table&gt;	
   &lt;table&gt;	
     &lt;tr&gt;&lt;td&gt;
	&lt;label for=&quot;endereco_bairro&quot;&gt; bairro:&lt;/label&gt;&lt;br /&gt;
	&lt;input type=&quot;text&quot; id=&quot;endereco_bairro&quot; name=&quot;endereco[bairro]&quot; size=&quot;20&quot; /&gt;
     &lt;/td&gt;&lt;td&gt;
	&lt;label for=&quot;endereco_cidade&quot;&gt; cidade:&lt;/label&gt;&lt;br /&gt;
	&lt;input type=&quot;text&quot; id=&quot;endereco_cidade&quot; name=&quot;endereco[cidade]&quot; size=&quot;20&quot; /&gt;
     &lt;/td&gt;&lt;td&gt;
	&lt;label for=&quot;endereco_estado&quot;&gt; estado:&lt;/label&gt;&lt;br /&gt;
	&lt;input type=&quot;text&quot; id=&quot;endereco_estado&quot; name=&quot;endereco[estado]&quot; size=&quot;5&quot; /&gt;
     &lt;/td&gt;&lt;/tr&gt;
   &lt;/table&gt; 
 &lt;/fieldset&gt;
&lt;/form&gt;
&lt;/body&gt;</pre></td></tr></table></div>

<p>Ufa!! terminamos <img src='http://www.sagadoprogramador.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Agora é só iniciar o seu servidor:</p>
<pre> >> script/server </pre>
<p>e acessar o endereço: http://localhost:3000/enderecos<br />
E ai funcionou?<br />
...<br />
...<br />
..<br />
Não?? como assim? vc acompanhou o tutorial todo?<br />
#!**#$!!!<br />
Eu falei para você não ficar só copiando e colando o código....</p>
<p>HAHHAAA!! brincadeira, ainda falta um pequeno detalhe <img src='http://www.sagadoprogramador.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
edite o arquivo: config/environment.rb</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="ruby" style="font-family:monospace;">  <span style="color:#9966CC; font-weight:bold;">if</span> <span style="color:#6666ff; font-weight:bold;">Rails::VERSION::STRING</span> <span style="color:#006600; font-weight:bold;">&gt;</span> <span style="color:#996600;">'2.0.2'</span>
    config.<span style="color:#9900CC;">gem</span> <span style="color:#996600;">'brazilian-rails'</span>
  <span style="color:#9966CC; font-weight:bold;">else</span>
    <span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'brazilian-rails'</span>
  <span style="color:#9966CC; font-weight:bold;">end</span></pre></td></tr></table></div>

<p>Agora sim é só testar!</p>
<p>Abraço!<br />
Iuri</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sagadoprogramador.com.br/2008/11/receita-para-um-formulario-com-busca-de-cep-a-la-rails-p/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
