<?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>Diego Roriz &#187; rails</title>
	<atom:link href="http://www.diegororiz.com.br/tags/rails/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.diegororiz.com.br</link>
	<description>Rails, Tecnologia e Desenvolvimento</description>
	<lastBuildDate>Fri, 03 Sep 2010 13:39:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Caelum Ensino e Inovação &#8211; Apostilas abertas para download</title>
		<link>http://www.diegororiz.com.br/2010/01/caelum-ensino-e-inovacao-apostilas-abertas-para-download/</link>
		<comments>http://www.diegororiz.com.br/2010/01/caelum-ensino-e-inovacao-apostilas-abertas-para-download/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 22:30:22 +0000</pubDate>
		<dc:creator>Diego Roriz</dc:creator>
				<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[tecnologia]]></category>
		<category><![CDATA[exemplos]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[material]]></category>
		<category><![CDATA[programação]]></category>

		<guid isPermaLink="false">http://www.diegororiz.com.br/?p=452</guid>
		<description><![CDATA[Estava navegando pela internet e encontrei algumas apostilas de ótima qualidade na página da empresa Caelum &#8211; Ensino e Inovação. São apostilas de alguns dos cursos ministrados por eles. Confiram a seguir um pouco mais da empresa e das apostilas. A Caelum disponibiliza gratuitamente para download algumas das apostilas de seus cursos para a comunidade, [...]


Leia também:<ol><li><a href='http://www.diegororiz.com.br/2010/02/java-versus-ruby-on-rails/' rel='bookmark' title='Permanent Link: Java versus Ruby On Rails'>Java versus Ruby On Rails</a></li>
<li><a href='http://www.diegororiz.com.br/2010/01/ruby-versus-rails/' rel='bookmark' title='Permanent Link: Ruby versus Rails'>Ruby versus Rails</a></li>
<li><a href='http://www.diegororiz.com.br/2009/12/criando-sua-primeira-aplicacao-rails/' rel='bookmark' title='Permanent Link: Criando sua primeira aplicação Rails'>Criando sua primeira aplicação Rails</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.diegororiz.com.br%2F2010%2F01%2Fcaelum-ensino-e-inovacao-apostilas-abertas-para-download%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.diegororiz.com.br%2F2010%2F01%2Fcaelum-ensino-e-inovacao-apostilas-abertas-para-download%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.diegororiz.com.br%2F2010%2F01%2Fcaelum-ensino-e-inovacao-apostilas-abertas-para-download%2F&amp;source=diegororiz&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><center><script type="text/javascript"><!--
google_ad_client = "pub-5736742881365075";
/* 468x60_img */
google_ad_slot = "0868551014";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></center><br clear="all" /></p>
<p>Estava navegando pela internet e encontrei algumas apostilas de ótima qualidade na página da empresa Caelum &#8211; Ensino e Inovação. São apostilas de alguns dos cursos ministrados por eles. Confiram a seguir um pouco mais da empresa e das apostilas.</p>
<p>A <strong>Caelum</strong> disponibiliza gratuitamente para download algumas das apostilas      de seus <a href="http://www.caelum.com.br/cursos/">cursos</a> para a comunidade, com intuito de      disseminar o conhecimento. Envie esta página para seus amigos também. Evite enviar ou receber      as apostilas por e-mail, <strong>sempre baixe as versões mais novas e atualizadas das apostilas</strong> <a href="http://www.caelum.com.br/apostilas/" target="_blank">aqui</a>.</p>
<p>Para quem quiser conhecer um pouco mais sobre a <a href="http://www.caelum.com.br/" target="_blank"><strong>Caelum</strong></a>, acesse o site oficial ou vá direto para a seção <a href="http://www.caelum.com.br/empresa/quem-somos/" target="_blank"><strong>Quem Somos</strong></a>. A seguir, um link para as apostilas disponibilizadas pela empresa.<a href="http://www.caelum.com.br/curso/fj-11-java-orientacao-objetos/"></a></p>
<ul>
<li><a href="http://www.caelum.com.br/curso/fj-11-java-orientacao-objetos/">FJ-11: Java e Orientação a Objetos</a></li>
<li><a href="http://www.caelum.com.br/curso/fj-21-java-web/">FJ-21: Java para Desenvolvimento Web</a></li>
<li><a href="http://www.caelum.com.br/curso/fj-16-laboratorio-java-testes-xml-design-patterns/">FJ-16: Laboratório Java com Testes, XML e Design Patterns</a></li>
<li><a href="http://www.caelum.com.br/curso/fj-28-vraptor-hibernate-ajax/">FJ-28: Desenvolvimento ágil para Web 2.0 com VRaptor, Hibernate e AJAX</a></li>
<li><a href="http://www.caelum.com.br/curso/rr-71-ruby-on-rails/">(NOVO) RR-71: Desenvolvimento Ágil para Web 2.0 com Ruby on Rails</a></li>
<li><a href="http://www.caelum.com.br/curso/cs-14-algoritmos-estruturas-dados-java/">CS-14: Algoritmos e Estruturas de Dados com Java</a></li>
</ul>
<div>Destaco uma atenção para a <strong><a href="http://www.caelum.com.br/curso/rr-71-ruby-on-rails/" target="_blank">apostila de Ruby e Rails</a></strong> por motivos óbvios! Eu gosto muito de Ruby e Rails e gosto de difundir a linguagem e o framework! <img src='http://www.diegororiz.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </div>
<div>Espero que gostem e indiquem para amigos e companheiros de estudo. Até a próxima.</div>
<p><br clear="all" /></p>
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.diegororiz.com.br%2F2010%2F01%2Fcaelum-ensino-e-inovacao-apostilas-abertas-para-download%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-shr">
<ul class="socials">
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Caelum+Ensino+e+Inova%C3%A7%C3%A3o+-+Apostilas+abertas+para+download+-+http://b2l.me/e3jw5+%28via+%40diegororiz%29&amp;source=shareaholic" rel="" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-mail">
			<a href="mailto:?subject=%22Caelum%20Ensino%20e%20Inova%C3%A7%C3%A3o%20-%20Apostilas%20abertas%20para%20download%22&amp;body=Link: http://www.diegororiz.com.br/2010/01/caelum-ensino-e-inovacao-apostilas-abertas-para-download/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A %5Bad%23adv_480x60_img%5D%0D%0AEstava%20navegando%20pela%20internet%20e%20encontrei%20algumas%20apostilas%20de%20%C3%B3tima%20qualidade%20na%20p%C3%A1gina%20da%20empresa%20Caelum%20-%20Ensino%20e%20Inova%C3%A7%C3%A3o.%20S%C3%A3o%20apostilas%20de%20alguns%20dos%20cursos%20ministrados%20por%20eles.%20Confiram%20a%20seguir%20um%20pouco%20mais%20da%20empresa%20e%20das%20apostilas.%0D%0AA%20Caelum%20disponibiliza%20grat" rel="" class="external" title="Enviar para um amigo?">Enviar para um amigo?</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.diegororiz.com.br/2010/01/caelum-ensino-e-inovacao-apostilas-abertas-para-download/&amp;t=Caelum+Ensino+e+Inova%C3%A7%C3%A3o+-+Apostilas+abertas+para+download" rel="" class="external" title="Compartilhar noFacebook">Compartilhar noFacebook</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.diegororiz.com.br/2010/01/caelum-ensino-e-inovacao-apostilas-abertas-para-download/&amp;title=Caelum+Ensino+e+Inova%C3%A7%C3%A3o+-+Apostilas+abertas+para+download" rel="" class="external" title="Compartilhar nodel.icio.us">Compartilhar nodel.icio.us</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.diegororiz.com.br/2010/01/caelum-ensino-e-inovacao-apostilas-abertas-para-download/&amp;imageurl=" rel="" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-blogger">
			<a href="http://www.blogger.com/blog_this.pyra?t&amp;u=http://www.diegororiz.com.br/2010/01/caelum-ensino-e-inovacao-apostilas-abertas-para-download/&amp;n=Caelum+Ensino+e+Inova%C3%A7%C3%A3o+-+Apostilas+abertas+para+download&amp;pli=1" rel="" class="external" title="Postar noBlogger">Postar noBlogger</a>
		</li>
		<li class="shr-orkut">
			<a href="http://promote.orkut.com/preview?nt=orkut.com&amp;tt=Caelum+Ensino+e+Inova%C3%A7%C3%A3o+-+Apostilas+abertas+para+download&amp;du=http://www.diegororiz.com.br/2010/01/caelum-ensino-e-inovacao-apostilas-abertas-para-download/&amp;cn=%5Bad%23adv_480x60_img%5D%0D%0AEstava%20navegando%20pela%20internet%20e%20encontrei%20algumas%20apostilas%20de%20%C3%B3tima%20qualidade%20na%20p%C3%A1gina%20da%20empresa%20Caelum%20-%20Ensino%20e%20Inova%C3%A7%C3%A3o.%20S%C3%A3o%20apostilas%20de%20alguns%20dos%20cursos%20ministrados%20por%20eles.%20Confiram%20a%20seguir%20um%20pouco%20mais%20da%20empresa%20e%20das%20apostilas.%0D%0AA%20Caelum%20disponibiliza%20grat" rel="" class="external" title="Promover noOrkut">Promover noOrkut</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.diegororiz.com.br/2010/01/caelum-ensino-e-inovacao-apostilas-abertas-para-download/&amp;title=Caelum+Ensino+e+Inova%C3%A7%C3%A3o+-+Apostilas+abertas+para+download&amp;summary=%5Bad%23adv_480x60_img%5D%0D%0AEstava%20navegando%20pela%20internet%20e%20encontrei%20algumas%20apostilas%20de%20%C3%B3tima%20qualidade%20na%20p%C3%A1gina%20da%20empresa%20Caelum%20-%20Ensino%20e%20Inova%C3%A7%C3%A3o.%20S%C3%A3o%20apostilas%20de%20alguns%20dos%20cursos%20ministrados%20por%20eles.%20Confiram%20a%20seguir%20um%20pouco%20mais%20da%20empresa%20e%20das%20apostilas.%0D%0AA%20Caelum%20disponibiliza%20grat&amp;source=Diego Roriz" rel="" class="external" title="Compartilhar noLinkedIn">Compartilhar noLinkedIn</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>



<br /><p>Leia também:</p><ol><li><a href='http://www.diegororiz.com.br/2010/02/java-versus-ruby-on-rails/' rel='bookmark' title='Permanent Link: Java versus Ruby On Rails'>Java versus Ruby On Rails</a></li>
<li><a href='http://www.diegororiz.com.br/2010/01/ruby-versus-rails/' rel='bookmark' title='Permanent Link: Ruby versus Rails'>Ruby versus Rails</a></li>
<li><a href='http://www.diegororiz.com.br/2009/12/criando-sua-primeira-aplicacao-rails/' rel='bookmark' title='Permanent Link: Criando sua primeira aplicação Rails'>Criando sua primeira aplicação Rails</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.diegororiz.com.br/2010/01/caelum-ensino-e-inovacao-apostilas-abertas-para-download/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dica rápida &#8211; Como destruir registros em massa utilizando Rails?</title>
		<link>http://www.diegororiz.com.br/2010/01/dica-rapida-como-destruir-registros-em-massa-utilizando-rails/</link>
		<comments>http://www.diegororiz.com.br/2010/01/dica-rapida-como-destruir-registros-em-massa-utilizando-rails/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 18:10:16 +0000</pubDate>
		<dc:creator>Diego Roriz</dc:creator>
				<category><![CDATA[rails]]></category>
		<category><![CDATA[dica rapida]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.diegororiz.com.br/?p=394</guid>
		<description><![CDATA[Você já deve ter tido a necessidade de destruir um conjunto de registros e não sabia como fazê-lo em uma única operação! Então confira duas formas de fazer isso em Rails e a diferença entre elas.


Leia também:<ol><li><a href='http://www.diegororiz.com.br/2010/02/dica-rapida-como-visualizar-a-saida-sql-no-scriptconsole-em-projetos-rails/' rel='bookmark' title='Permanent Link: Dica Rápida &#8211; Como visualizar a saída SQL no script/console em projetos Rails'>Dica Rápida &#8211; Como visualizar a saída SQL no script/console em projetos Rails</a></li>
<li><a href='http://www.diegororiz.com.br/2010/04/dica-rapida-como-formatar-a-saida-da-data-no-command-do-windows/' rel='bookmark' title='Permanent Link: [Dica rápida] Como formatar a saída da data no command do Windows?'>[Dica rápida] Como formatar a saída da data no command do Windows?</a></li>
<li><a href='http://www.diegororiz.com.br/2010/01/dica-rapida-adicionar-novos-campos-em-tabelas/' rel='bookmark' title='Permanent Link: Dica Rápida &#8211; Adicionar novos campos em tabelas'>Dica Rápida &#8211; Adicionar novos campos em tabelas</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.diegororiz.com.br%2F2010%2F01%2Fdica-rapida-como-destruir-registros-em-massa-utilizando-rails%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.diegororiz.com.br%2F2010%2F01%2Fdica-rapida-como-destruir-registros-em-massa-utilizando-rails%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.diegororiz.com.br%2F2010%2F01%2Fdica-rapida-como-destruir-registros-em-massa-utilizando-rails%2F&amp;source=diegororiz&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><center><script type="text/javascript"><!--
google_ad_client = "pub-5736742881365075";
/* 468x60_img */
google_ad_slot = "0868551014";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></center><br clear="all" /></p>
<p>Você certamente já precisou destruir um conjunto de registros do banco em uma única operação. O ActiveRecord provê dois métodos que proporcionam essa funcionalidade: <strong>destroy_all</strong> e <strong>delete_all</strong>. Mas se os dois deletam registros da base, quando usar um e quando usar o outro? Qual a diferença entre eles?</p>
<p>O método <strong>delete_all</strong> deleta os registros que obedecerem às condições de exclusão informadas sem instanciar o registro e portanto, sem chamar o método <em>destroy</em> nem invocar os <em>callbacks</em>. O <em>delete_all</em> é apenas uma instrução SQL DELETE que é executada direto na base de dados, sendo muito mais eficiente que o <em>destroy_all</em>. O método <em>delete_all</em> retorna o número de registros afetados com a operação.</p>
<p>Já o método <strong>destroy_all</strong> destrói todos os registros que obedecerem ás condições de exclusão informadas instanciando um objeto para cada registro e chamado o método <em>destroy</em>. Todos os <em>callbacks</em> de cada objeto são executados, incluindo as opções de associação entre objetos <em>:dependent</em> e os <em>before/aftersave</em>. Uma coleção dos objetos destruídos é retornada. Os objetos desta coleção são classificados como <strong>congelados</strong>, visto que os objetos não podem ser nem salvos nem alterados.</p>
<p><br clear="all" /></p>
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.diegororiz.com.br%2F2010%2F01%2Fdica-rapida-como-destruir-registros-em-massa-utilizando-rails%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-shr">
<ul class="socials">
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Dica+r%C3%A1pida+-+Como+destruir+registros+em+massa+utilizando+Rails%3F+-+http://b2l.me/ed6js+%28via+%40diegororiz%29&amp;source=shareaholic" rel="" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-mail">
			<a href="mailto:?subject=%22Dica%20r%C3%A1pida%20-%20Como%20destruir%20registros%20em%20massa%20utilizando%20Rails%3F%22&amp;body=Link: http://www.diegororiz.com.br/2010/01/dica-rapida-como-destruir-registros-em-massa-utilizando-rails/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Voc%C3%AA%20j%C3%A1%20deve%20ter%20tido%20a%20necessidade%20de%20destruir%20um%20conjunto%20de%20registros%20e%20n%C3%A3o%20sabia%20como%20faz%C3%AA-lo%20em%20uma%20%C3%BAnica%20opera%C3%A7%C3%A3o%21%20Ent%C3%A3o%20confira%20duas%20formas%20de%20fazer%20isso%20em%20Rails%20e%20a%20diferen%C3%A7a%20entre%20elas." rel="" class="external" title="Enviar para um amigo?">Enviar para um amigo?</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.diegororiz.com.br/2010/01/dica-rapida-como-destruir-registros-em-massa-utilizando-rails/&amp;t=Dica+r%C3%A1pida+-+Como+destruir+registros+em+massa+utilizando+Rails%3F" rel="" class="external" title="Compartilhar noFacebook">Compartilhar noFacebook</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.diegororiz.com.br/2010/01/dica-rapida-como-destruir-registros-em-massa-utilizando-rails/&amp;title=Dica+r%C3%A1pida+-+Como+destruir+registros+em+massa+utilizando+Rails%3F" rel="" class="external" title="Compartilhar nodel.icio.us">Compartilhar nodel.icio.us</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.diegororiz.com.br/2010/01/dica-rapida-como-destruir-registros-em-massa-utilizando-rails/&amp;imageurl=" rel="" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-blogger">
			<a href="http://www.blogger.com/blog_this.pyra?t&amp;u=http://www.diegororiz.com.br/2010/01/dica-rapida-como-destruir-registros-em-massa-utilizando-rails/&amp;n=Dica+r%C3%A1pida+-+Como+destruir+registros+em+massa+utilizando+Rails%3F&amp;pli=1" rel="" class="external" title="Postar noBlogger">Postar noBlogger</a>
		</li>
		<li class="shr-orkut">
			<a href="http://promote.orkut.com/preview?nt=orkut.com&amp;tt=Dica+r%C3%A1pida+-+Como+destruir+registros+em+massa+utilizando+Rails%3F&amp;du=http://www.diegororiz.com.br/2010/01/dica-rapida-como-destruir-registros-em-massa-utilizando-rails/&amp;cn=Voc%C3%AA%20j%C3%A1%20deve%20ter%20tido%20a%20necessidade%20de%20destruir%20um%20conjunto%20de%20registros%20e%20n%C3%A3o%20sabia%20como%20faz%C3%AA-lo%20em%20uma%20%C3%BAnica%20opera%C3%A7%C3%A3o%21%20Ent%C3%A3o%20confira%20duas%20formas%20de%20fazer%20isso%20em%20Rails%20e%20a%20diferen%C3%A7a%20entre%20elas." rel="" class="external" title="Promover noOrkut">Promover noOrkut</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.diegororiz.com.br/2010/01/dica-rapida-como-destruir-registros-em-massa-utilizando-rails/&amp;title=Dica+r%C3%A1pida+-+Como+destruir+registros+em+massa+utilizando+Rails%3F&amp;summary=Voc%C3%AA%20j%C3%A1%20deve%20ter%20tido%20a%20necessidade%20de%20destruir%20um%20conjunto%20de%20registros%20e%20n%C3%A3o%20sabia%20como%20faz%C3%AA-lo%20em%20uma%20%C3%BAnica%20opera%C3%A7%C3%A3o%21%20Ent%C3%A3o%20confira%20duas%20formas%20de%20fazer%20isso%20em%20Rails%20e%20a%20diferen%C3%A7a%20entre%20elas.&amp;source=Diego Roriz" rel="" class="external" title="Compartilhar noLinkedIn">Compartilhar noLinkedIn</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>



<br /><p>Leia também:</p><ol><li><a href='http://www.diegororiz.com.br/2010/02/dica-rapida-como-visualizar-a-saida-sql-no-scriptconsole-em-projetos-rails/' rel='bookmark' title='Permanent Link: Dica Rápida &#8211; Como visualizar a saída SQL no script/console em projetos Rails'>Dica Rápida &#8211; Como visualizar a saída SQL no script/console em projetos Rails</a></li>
<li><a href='http://www.diegororiz.com.br/2010/04/dica-rapida-como-formatar-a-saida-da-data-no-command-do-windows/' rel='bookmark' title='Permanent Link: [Dica rápida] Como formatar a saída da data no command do Windows?'>[Dica rápida] Como formatar a saída da data no command do Windows?</a></li>
<li><a href='http://www.diegororiz.com.br/2010/01/dica-rapida-adicionar-novos-campos-em-tabelas/' rel='bookmark' title='Permanent Link: Dica Rápida &#8211; Adicionar novos campos em tabelas'>Dica Rápida &#8211; Adicionar novos campos em tabelas</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.diegororiz.com.br/2010/01/dica-rapida-como-destruir-registros-em-massa-utilizando-rails/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ruby versus Rails</title>
		<link>http://www.diegororiz.com.br/2010/01/ruby-versus-rails/</link>
		<comments>http://www.diegororiz.com.br/2010/01/ruby-versus-rails/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 18:31:08 +0000</pubDate>
		<dc:creator>Diego Roriz</dc:creator>
				<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[diferencial]]></category>
		<category><![CDATA[iniciante]]></category>
		<category><![CDATA[programação]]></category>

		<guid isPermaLink="false">http://www.diegororiz.com.br/?p=324</guid>
		<description><![CDATA[Já ouviu falar de Ruby, Rails e não sabe bem o que cada coisa é? Você achava que Rails e Ruby eram a mesma coisa?! Confira aqui os conceitos sobre as duas coisas!!!


Leia também:<ol><li><a href='http://www.diegororiz.com.br/2010/02/java-versus-ruby-on-rails/' rel='bookmark' title='Permanent Link: Java versus Ruby On Rails'>Java versus Ruby On Rails</a></li>
<li><a href='http://www.diegororiz.com.br/2009/12/criando-sua-primeira-aplicacao-rails/' rel='bookmark' title='Permanent Link: Criando sua primeira aplicação Rails'>Criando sua primeira aplicação Rails</a></li>
<li><a href='http://www.diegororiz.com.br/2010/01/caelum-ensino-e-inovacao-apostilas-abertas-para-download/' rel='bookmark' title='Permanent Link: Caelum Ensino e Inovação &#8211; Apostilas abertas para download'>Caelum Ensino e Inovação &#8211; Apostilas abertas para download</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.diegororiz.com.br%2F2010%2F01%2Fruby-versus-rails%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.diegororiz.com.br%2F2010%2F01%2Fruby-versus-rails%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.diegororiz.com.br%2F2010%2F01%2Fruby-versus-rails%2F&amp;source=diegororiz&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><center><script type="text/javascript"><!--
google_ad_client = "pub-5736742881365075";
/* 468x60_img */
google_ad_slot = "0868551014";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></center><br clear="all" /></p>
<p>Muitas pessoas que iniciam os estudos em Ruby On Rails não sabem distinguir exatamente uma coisa da outra (Ruby e Rails). Este post têm o objetivo de esclarecer o que é cada uma dessas coisas e mostrar um pouco das mesmas.</p>
<p>Para começar, vamos direto ao ponto. <strong>Ruby</strong> é uma <strong>linguagem de programação</strong> e <strong>Rails</strong> é um <strong>framework para desenvolvimento web</strong>. <em>(PS.: se você não sabe o que é um framework, não se preocupe!) </em>Agora que eu já traumatizei vocês (<em>risos</em>), vou aprofundar um pouco mais nos detalhes e trazer alguns exemplos e sites de referências.</p>
<div id="attachment_325" class="wp-caption alignleft" style="width: 99px"><img class="size-full wp-image-325" title="ruby-language" src="http://www.diegororiz.com.br/wp-content/uploads/2010/01/ruby-language.png" alt="Logo Ruby" width="89" height="101" /><p class="wp-caption-text">Ruby</p></div>
<p>Ruby, como dito no parágrafo anterior, é uma linguagem criada em 1993 por <a href="http://en.wikipedia.org/wiki/Yukihiro_Matsumoto" target="_blank">Yukihiro Matsumoto (Matz)</a>. Ela foi grandemente inspirada em Python e Perl (daí o nome &#8220;Ruby&#8221;, outra pedra preciosa). Matz queria uma linguagem mais poderosa que Perl e mais orientada a objeto que Python.</p>
<p>Ruby é uma linguagem projetada tanto para a programação em grande escala quanto para codificação rápida, tem um suporte a orientação a objetos que tem o <strong>objetivo de ser simples e prático</strong>. Esta linguagem possui<strong> repositórios de bibliotecas disponíveis</strong> em sites como <a href="http://gemcutter.org/" target="_blank"><strong>GemCutter</strong></a> e uma ferramenta de instalação dessas bibliotecas chamada <strong><a href="http://docs.rubygems.org/" target="_blank">Ruby Gems</a></strong>, semelhante aos gerenciadores de pacotes do Debian Linux, como o apt.</p>
<p>Para se ter uma idéia do potencial da linguagem quanto ao que ela se propõe a fazer, confiram o post <a href="http://www.diegororiz.com.br/2009/12/porque-utilizar-ruby/" target="_blank"><strong>Porquê utilizar Ruby</strong></a>, publicado no próprio <a href="http://www.diegororiz.com.br">blog</a>.</p>
<p><center><script type="text/javascript"><!--
google_ad_client = "pub-5736742881365075";
/* 468x60_img */
google_ad_slot = "0868551014";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></center><br clear="all" /></p>
<p>Já o Rails é um framework com foco no desenvolvimento de aplicações web. <strong>Mas o que é um framework?!</strong> Um framework pode ser considerado como um conjunto de códigos que foram identificados como sendo comuns em vários projetos e que possuem uma finalidade muito específica. De uma maneira mais informal, considerem um framework como uma caixa de ferramentas. Para cada tipo de problema na vida real, você tem uma caixa de ferramentas criadas para você atacar aquele tipo de problema específico. O Ra<img class="alignright size-full wp-image-327" title="rails" src="http://www.diegororiz.com.br/wp-content/uploads/2010/01/rails.png" alt="Rails" width="89" height="114" />ils é uma caixa de ferramentas para pessoas que queiram desenvolver aplicações web!</p>
<p>Como ia dizendo, o Rails é um <a title="Meta-framework" href="http://pt.wikipedia.org/wiki/Meta-framework">framework</a> gratuito que promete aumentar velocidade e facilidade no desenvolvimento de sites orientados a banco de dados (<em>database-driven web sites</em>), uma vez que é possível criar aplicações com base em estruturas pré-definidas.</p>
<p>O Rails foi criado a partir da experiência de  David Heinemeier Hansson (<a href="http://www.loudthinking.com/" target="_blank">página pessoal</a> e <a href="http://en.wikipedia.org/wiki/David_Heinemeier_Hansson" target="_blank">wikipedia</a>) de um projeto seu na 37signals (<a href="http://37signals.com/" target="_blank">site oficial</a> e <a href="http://en.wikipedia.org/wiki/37signals" target="_blank">wikipedia</a>), o gerenciador de projetos <a href="http://basecamphq.com/?source=37signals+home" target="_blank">Basecamp</a>. Depois de desenvolvido o projeto, foram observados padrões que poderiam ser utilizados na criação de outras aplicações web. E nascia aí o Rails!</p>
<p>O Rails tem como algumas de suas filosofias os seguintes conceitos que agilizam o desenvolvimento:</p>
<ul>
<li><strong>DRY (<em>Don&#8217;t Repeat Yourself</em>)</strong>: basicamente explora a técnica de não repetir você mesmo! Mas como?! Citando como um exemplo, a identificação de trechos de código e separação dos mesmos em locais específicos para facilitar o reuso posteriormente <strong>(sem CTRL+C e CTRL+V)</strong> através de gems, plugins, libs, etc.</li>
</ul>
<ul>
<li><strong>COC (<em>Convetion Over Configuration</em>)</strong>: sempre existe mais de uma maneira de fazer uma determinada coisa. Esse conceito visa difundir a adoção da convenção sempre onde for possível. Caso contrário, o desenvolvedor sempre precisará configurar muitas coisas para colocar uma aplicação no ar, por exemplo. Mesmo a prioridade sendo sempre adotar a convenção, o desenvolvedor pode optar por configurar da maneira que for conveniente.</li>
</ul>
<p>Quer conferir o quão produtivo é desenvolver uma aplicação utilizando o framework Rails?! Confira neste mesmo <a href="http://www.diegororiz.com.br" target="_blank">blog</a> um post ensinando <a href="http://www.diegororiz.com.br/2009/12/criando-sua-primeira-aplicacao-rails/" target="_blank"><strong>como criar a sua primeira aplicação em rails</strong></a> &#8211; um cadastro de clientes.</p>
<p>E é isso pessoal! Como dito no começo do post, a diferença entre Ruby e Rails é que <strong>Ruby é uma linguagem de programação</strong> e <strong>Rails é um framework para aplicações web</strong>.</p>
<p>Referências:</p>
<ul>
<li><a href="http://pt.wikipedia.org/wiki/Ruby_(linguagem_de_programa%C3%A7%C3%A3o)" target="_blank">Ruby na Wikipedia (português)</a></li>
<li><a href="http://www.diegororiz.com.br/2009/12/porque-utilizar-ruby/" target="_blank">Porquê utilizar Ruby? (português)</a></li>
<li><a href="http://www.ruby-lang.org/pt/documentacao/ruby-em-vinte-minutos/" target="_blank">Experimente Ruby em 20 minutos (português)</a></li>
<li><a href="http://www.apidock.com/ruby">Documentação de Ruby (inglês)</a></li>
<li><a href="http://akitaonrails.com/2009/2/2/entendendo-rubygems" target="_blank">Tutorial sobre RubyGems</a> &#8211; Akita</li>
<li><a href="http://guias.rubyonrails.pro.br/" target="_blank">Guia de Rails (português)</a></li>
<li><a href="http://pt.wikipedia.org/wiki/Ruby_on_Rails" target="_blank">Rails na Wikipedia (português)</a></li>
<li><a href="http://rubyonrails.org/" target="_blank">Rails &#8211; Página Oficial (inglês)</a></li>
<li><a href="http://www.apidock.com/rails">Documentação de Rails (inglês)</a></li>
</ul>
<p></p>
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.diegororiz.com.br%2F2010%2F01%2Fruby-versus-rails%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-shr">
<ul class="socials">
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Ruby+versus+Rails+-+http://b2l.me/c2d5y+%28via+%40diegororiz%29&amp;source=shareaholic" rel="" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-mail">
			<a href="mailto:?subject=%22Ruby%20versus%20Rails%22&amp;body=Link: http://www.diegororiz.com.br/2010/01/ruby-versus-rails/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A J%C3%A1%20ouviu%20falar%20de%20Ruby%2C%20Rails%20e%20n%C3%A3o%20sabe%20bem%20o%20que%20cada%20coisa%20%C3%A9%3F%20Voc%C3%AA%20achava%20que%20Rails%20e%20Ruby%20eram%20a%20mesma%20coisa%3F%21%20Confira%20aqui%20os%20conceitos%20sobre%20as%20duas%20coisas%21%21%21" rel="" class="external" title="Enviar para um amigo?">Enviar para um amigo?</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.diegororiz.com.br/2010/01/ruby-versus-rails/&amp;t=Ruby+versus+Rails" rel="" class="external" title="Compartilhar noFacebook">Compartilhar noFacebook</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.diegororiz.com.br/2010/01/ruby-versus-rails/&amp;title=Ruby+versus+Rails" rel="" class="external" title="Compartilhar nodel.icio.us">Compartilhar nodel.icio.us</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.diegororiz.com.br/2010/01/ruby-versus-rails/&amp;imageurl=" rel="" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-blogger">
			<a href="http://www.blogger.com/blog_this.pyra?t&amp;u=http://www.diegororiz.com.br/2010/01/ruby-versus-rails/&amp;n=Ruby+versus+Rails&amp;pli=1" rel="" class="external" title="Postar noBlogger">Postar noBlogger</a>
		</li>
		<li class="shr-orkut">
			<a href="http://promote.orkut.com/preview?nt=orkut.com&amp;tt=Ruby+versus+Rails&amp;du=http://www.diegororiz.com.br/2010/01/ruby-versus-rails/&amp;cn=J%C3%A1%20ouviu%20falar%20de%20Ruby%2C%20Rails%20e%20n%C3%A3o%20sabe%20bem%20o%20que%20cada%20coisa%20%C3%A9%3F%20Voc%C3%AA%20achava%20que%20Rails%20e%20Ruby%20eram%20a%20mesma%20coisa%3F%21%20Confira%20aqui%20os%20conceitos%20sobre%20as%20duas%20coisas%21%21%21" rel="" class="external" title="Promover noOrkut">Promover noOrkut</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.diegororiz.com.br/2010/01/ruby-versus-rails/&amp;title=Ruby+versus+Rails&amp;summary=J%C3%A1%20ouviu%20falar%20de%20Ruby%2C%20Rails%20e%20n%C3%A3o%20sabe%20bem%20o%20que%20cada%20coisa%20%C3%A9%3F%20Voc%C3%AA%20achava%20que%20Rails%20e%20Ruby%20eram%20a%20mesma%20coisa%3F%21%20Confira%20aqui%20os%20conceitos%20sobre%20as%20duas%20coisas%21%21%21&amp;source=Diego Roriz" rel="" class="external" title="Compartilhar noLinkedIn">Compartilhar noLinkedIn</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>



<br /><p>Leia também:</p><ol><li><a href='http://www.diegororiz.com.br/2010/02/java-versus-ruby-on-rails/' rel='bookmark' title='Permanent Link: Java versus Ruby On Rails'>Java versus Ruby On Rails</a></li>
<li><a href='http://www.diegororiz.com.br/2009/12/criando-sua-primeira-aplicacao-rails/' rel='bookmark' title='Permanent Link: Criando sua primeira aplicação Rails'>Criando sua primeira aplicação Rails</a></li>
<li><a href='http://www.diegororiz.com.br/2010/01/caelum-ensino-e-inovacao-apostilas-abertas-para-download/' rel='bookmark' title='Permanent Link: Caelum Ensino e Inovação &#8211; Apostilas abertas para download'>Caelum Ensino e Inovação &#8211; Apostilas abertas para download</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.diegororiz.com.br/2010/01/ruby-versus-rails/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dica Rápida &#8211; Adicionar novos campos em tabelas</title>
		<link>http://www.diegororiz.com.br/2010/01/dica-rapida-adicionar-novos-campos-em-tabelas/</link>
		<comments>http://www.diegororiz.com.br/2010/01/dica-rapida-adicionar-novos-campos-em-tabelas/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 13:42:59 +0000</pubDate>
		<dc:creator>Diego Roriz</dc:creator>
				<category><![CDATA[rails]]></category>
		<category><![CDATA[diferencial]]></category>
		<category><![CDATA[exemplos]]></category>
		<category><![CDATA[migrations]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.diegororiz.com.br/?p=285</guid>
		<description><![CDATA[Neste post, iremos abordar um problema muito comum entre os desenvolvedores: ter que adicionar ou remover campos na tabela depois de criada a migrate inicial de forma fácil! Mas tem como?! Confira!


Leia também:<ol><li><a href='http://www.diegororiz.com.br/2010/01/dica-rapida-como-destruir-registros-em-massa-utilizando-rails/' rel='bookmark' title='Permanent Link: Dica rápida &#8211; Como destruir registros em massa utilizando Rails?'>Dica rápida &#8211; Como destruir registros em massa utilizando Rails?</a></li>
<li><a href='http://www.diegororiz.com.br/2010/05/dica-rapida-o-que-sao-feeds/' rel='bookmark' title='Permanent Link: [Dica Rápida] O que são FEEDS?'>[Dica Rápida] O que são FEEDS?</a></li>
<li><a href='http://www.diegororiz.com.br/2010/01/dica-rapida-listar-apenas-emails-nao-lidos-no-gmail/' rel='bookmark' title='Permanent Link: Dica rápida &#8211; Listar apenas emails não lidos no Gmail'>Dica rápida &#8211; Listar apenas emails não lidos no Gmail</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.diegororiz.com.br%2F2010%2F01%2Fdica-rapida-adicionar-novos-campos-em-tabelas%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.diegororiz.com.br%2F2010%2F01%2Fdica-rapida-adicionar-novos-campos-em-tabelas%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.diegororiz.com.br%2F2010%2F01%2Fdica-rapida-adicionar-novos-campos-em-tabelas%2F&amp;source=diegororiz&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><center><script type="text/javascript"><!--
google_ad_client = "pub-5736742881365075";
/* 468x60_img */
google_ad_slot = "0868551014";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></center></p>
<p><br class="spacer_" /></p>
<p>Primeiro post de 2010! Após um pequeno recesso no final do ano, estamos de volta com tudo! Neste post, iremos abordar um problema muito comum entre os desenvolvedores: ter que adicionar ou remover campos na tabela depois de criada a migrate inicial de forma fácil!</p>
<p>Mas como fazer isso de forma <strong>fácil</strong>?! O Rails oferece dois recursos que nos permitem <strong>adicionar ou </strong><strong>remover campos de uma tabela</strong> através de uma sintaxe pré-definida (padrão <strong>Convention Over Configuration</strong>), como pode ser observado a seguir:</p>
<blockquote><p><strong>AddXXXtoYYY</strong><br />
 <strong>RemoveXXXtoYYY</strong></p>
</blockquote>
<p>Neste caso, o parâmetro <strong>XXX</strong> indica um nome de algo que você deseje adicionar/remover mas que não precisa necessariamente refletir o nome de todos os campos. E o parâmetro <strong>YYY</strong> indica o nome da tabela que deve ser alterada. Para descrever os campos a serem adicionados, basta informar o nome e o tipo dele após a declaração da migrate. A sintaxe para declaração de campos em migrates permanece a mesma &#8211; <strong>nome_campo:tipo_campo</strong>. Para contextualizar, vejam o exemplo:</p>
<blockquote><p><strong>ruby script/generate migration AddFieldsToPessoas sobrenome:string profissao:string</strong></p>
</blockquote>
<p>O comando descrito acima vai gerar o seguinte código:</p>
<p>
<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p285code1'); return false;">View Code</a> RUBY</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p2851"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code" id="p285code1"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">class</span> AddFieldsToPessoas <span style="color:#006600; font-weight:bold;">&lt;</span> <span style="color:#6666ff; font-weight:bold;">ActiveRecord::Migration</span>
 <span style="color:#9966CC; font-weight:bold;">def</span> <span style="color:#0000FF; font-weight:bold;">self</span>.<span style="color:#9900CC;">up</span>
 add_column <span style="color:#ff3333; font-weight:bold;">:pessoas</span>, <span style="color:#ff3333; font-weight:bold;">:sobrenome</span>, :<span style="color:#CC0066; font-weight:bold;">string</span>
 add_column <span style="color:#ff3333; font-weight:bold;">:pessoas</span>, <span style="color:#ff3333; font-weight:bold;">:profissao</span>, :<span style="color:#CC0066; font-weight:bold;">string</span>
 <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
 <span style="color:#9966CC; font-weight:bold;">def</span> <span style="color:#0000FF; font-weight:bold;">self</span>.<span style="color:#9900CC;">down</span>
 remove_column <span style="color:#ff3333; font-weight:bold;">:pessoas</span>, <span style="color:#ff3333; font-weight:bold;">:profissao</span>
 remove_column <span style="color:#ff3333; font-weight:bold;">:pessoas</span>, <span style="color:#ff3333; font-weight:bold;">:sobrenome</span>
 <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></td></tr></table></div>

</p>
<p>Se quisermos remover campos de uma determinada tabela, basta trocar o prefixo <em>Add</em> por <em>Remove</em>. Vale a pena lembrar que estas alterações refletem apenas no banco de dados. Ou seja, se você adicionar ou remover campos de uma tabela, irá precisar alterar suas views para que a alteração do banco possa refletir na sua aplicação!</p>
<p>Gostou?! Esta dica facilitou seu trabalho? Então indique para os amigos!<br />
 <strong>Diego Roriz</strong></p>
<p><br class="spacer_" /></p>
<p></p>
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.diegororiz.com.br%2F2010%2F01%2Fdica-rapida-adicionar-novos-campos-em-tabelas%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-shr">
<ul class="socials">
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Dica+R%C3%A1pida+-+Adicionar+novos+campos+em+tabelas+-+http://b2l.me/cxeuh+%28via+%40diegororiz%29&amp;source=shareaholic" rel="" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-mail">
			<a href="mailto:?subject=%22Dica%20R%C3%A1pida%20-%20Adicionar%20novos%20campos%20em%20tabelas%22&amp;body=Link: http://www.diegororiz.com.br/2010/01/dica-rapida-adicionar-novos-campos-em-tabelas/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Neste%20post%2C%20iremos%20abordar%20um%20problema%20muito%20comum%20entre%20os%20desenvolvedores%3A%20ter%20que%20adicionar%20ou%20remover%20campos%20na%20tabela%20depois%20de%20criada%20a%20migrate%20inicial%20de%20forma%20f%C3%A1cil%21%20Mas%20tem%20como%3F%21%20Confira%21" rel="" class="external" title="Enviar para um amigo?">Enviar para um amigo?</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.diegororiz.com.br/2010/01/dica-rapida-adicionar-novos-campos-em-tabelas/&amp;t=Dica+R%C3%A1pida+-+Adicionar+novos+campos+em+tabelas" rel="" class="external" title="Compartilhar noFacebook">Compartilhar noFacebook</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.diegororiz.com.br/2010/01/dica-rapida-adicionar-novos-campos-em-tabelas/&amp;title=Dica+R%C3%A1pida+-+Adicionar+novos+campos+em+tabelas" rel="" class="external" title="Compartilhar nodel.icio.us">Compartilhar nodel.icio.us</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.diegororiz.com.br/2010/01/dica-rapida-adicionar-novos-campos-em-tabelas/&amp;imageurl=" rel="" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-blogger">
			<a href="http://www.blogger.com/blog_this.pyra?t&amp;u=http://www.diegororiz.com.br/2010/01/dica-rapida-adicionar-novos-campos-em-tabelas/&amp;n=Dica+R%C3%A1pida+-+Adicionar+novos+campos+em+tabelas&amp;pli=1" rel="" class="external" title="Postar noBlogger">Postar noBlogger</a>
		</li>
		<li class="shr-orkut">
			<a href="http://promote.orkut.com/preview?nt=orkut.com&amp;tt=Dica+R%C3%A1pida+-+Adicionar+novos+campos+em+tabelas&amp;du=http://www.diegororiz.com.br/2010/01/dica-rapida-adicionar-novos-campos-em-tabelas/&amp;cn=Neste%20post%2C%20iremos%20abordar%20um%20problema%20muito%20comum%20entre%20os%20desenvolvedores%3A%20ter%20que%20adicionar%20ou%20remover%20campos%20na%20tabela%20depois%20de%20criada%20a%20migrate%20inicial%20de%20forma%20f%C3%A1cil%21%20Mas%20tem%20como%3F%21%20Confira%21" rel="" class="external" title="Promover noOrkut">Promover noOrkut</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.diegororiz.com.br/2010/01/dica-rapida-adicionar-novos-campos-em-tabelas/&amp;title=Dica+R%C3%A1pida+-+Adicionar+novos+campos+em+tabelas&amp;summary=Neste%20post%2C%20iremos%20abordar%20um%20problema%20muito%20comum%20entre%20os%20desenvolvedores%3A%20ter%20que%20adicionar%20ou%20remover%20campos%20na%20tabela%20depois%20de%20criada%20a%20migrate%20inicial%20de%20forma%20f%C3%A1cil%21%20Mas%20tem%20como%3F%21%20Confira%21&amp;source=Diego Roriz" rel="" class="external" title="Compartilhar noLinkedIn">Compartilhar noLinkedIn</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>



<br /><p>Leia também:</p><ol><li><a href='http://www.diegororiz.com.br/2010/01/dica-rapida-como-destruir-registros-em-massa-utilizando-rails/' rel='bookmark' title='Permanent Link: Dica rápida &#8211; Como destruir registros em massa utilizando Rails?'>Dica rápida &#8211; Como destruir registros em massa utilizando Rails?</a></li>
<li><a href='http://www.diegororiz.com.br/2010/05/dica-rapida-o-que-sao-feeds/' rel='bookmark' title='Permanent Link: [Dica Rápida] O que são FEEDS?'>[Dica Rápida] O que são FEEDS?</a></li>
<li><a href='http://www.diegororiz.com.br/2010/01/dica-rapida-listar-apenas-emails-nao-lidos-no-gmail/' rel='bookmark' title='Permanent Link: Dica rápida &#8211; Listar apenas emails não lidos no Gmail'>Dica rápida &#8211; Listar apenas emails não lidos no Gmail</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.diegororiz.com.br/2010/01/dica-rapida-adicionar-novos-campos-em-tabelas/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Internacionalização em Rails &#8211; I18n</title>
		<link>http://www.diegororiz.com.br/2009/12/internacionalizacao-em-rails-i18n/</link>
		<comments>http://www.diegororiz.com.br/2009/12/internacionalizacao-em-rails-i18n/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 13:26:06 +0000</pubDate>
		<dc:creator>Diego Roriz</dc:creator>
				<category><![CDATA[rails]]></category>
		<category><![CDATA[diferencial]]></category>
		<category><![CDATA[exemplos]]></category>
		<category><![CDATA[I18n]]></category>
		<category><![CDATA[internacionalização]]></category>
		<category><![CDATA[localização]]></category>
		<category><![CDATA[programação]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.diegororiz.com.br/?p=140</guid>
		<description><![CDATA[Hoje irei apresentar um tutorial prático sobre a gem I18n, responsável pela internacionalização e localização da aplicação rails. Este post é dedicado principalmente aos leitores que pediram o tema via Twitter e aos meus alunos que cursaram o Primeiro Curso de Ruby On Rails de Goiânia e ficaram curiosos quando eu expliquei o que esta gem era capaz de fazer! Mas o que é internacionalização? Confira já aqui!


Leia também:<ol><li><a href='http://www.diegororiz.com.br/2010/01/ruby-versus-rails/' rel='bookmark' title='Permanent Link: Ruby versus Rails'>Ruby versus Rails</a></li>
<li><a href='http://www.diegororiz.com.br/2009/12/criando-sua-primeira-aplicacao-rails/' rel='bookmark' title='Permanent Link: Criando sua primeira aplicação Rails'>Criando sua primeira aplicação Rails</a></li>
<li><a href='http://www.diegororiz.com.br/2010/01/dica-rapida-adicionar-novos-campos-em-tabelas/' rel='bookmark' title='Permanent Link: Dica Rápida &#8211; Adicionar novos campos em tabelas'>Dica Rápida &#8211; Adicionar novos campos em tabelas</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.diegororiz.com.br%2F2009%2F12%2Finternacionalizacao-em-rails-i18n%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.diegororiz.com.br%2F2009%2F12%2Finternacionalizacao-em-rails-i18n%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.diegororiz.com.br%2F2009%2F12%2Finternacionalizacao-em-rails-i18n%2F&amp;source=diegororiz&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><center><center><script type="text/javascript"><!--
google_ad_client = "pub-5736742881365075";
/* 468x60_img */
google_ad_slot = "0868551014";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></center></center><br clear="all" /></p>
<p>Hoje irei apresentar um tutorial prático sobre a gem I18n, responsável pela internacionalização e localização da aplicação rails. Este post é dedicado principalmente aos leitores que pediram o tema via <a href="http://www.twitter.com/diegororiz" target="_blank">Twitter</a> e aos meus alunos que cursaram o <strong>Primeiro Curso de Ruby On Rails de Goiânia</strong> e ficaram curiosos quando eu expliquei o que esta gem era capaz de fazer<a href="http://www.twitter.com/diegororiz" target="_blank"></a>! Mas o que é internacionalização?</p>
<p>Citando <a href="http://guias.rubyonrails.pro.br/i18n.html" target="_blank">Rails Guide</a>, o processo de &#8220;internacionalização&#8221; normalmente significa abstrair da aplicação todas as strings e outras partes que dependem das particularidades de cada local e língua, como o formato de datas ou moeda. O processo de &#8220;localização&#8221; significa providenciar traduções e formatação adequadas à cada uma dessa partes.</p>
<p>Para este post, irei considerar que vocês já possuem a aplicação pronta, no caso, o <a href="http://www.diegororiz.com.br/2009/12/criando-sua-primeira-aplicacao-rails/" target="_blank">cadastro de clientes criado em um post anterior</a>. Se preferir, <a href="http://www.diegororiz.com.br/wp-content/uploads/2009/12/primeiro_projeto.zip" target="_blank">baixe a aplicação aqui</a>. Porém, sugiro aos iniciantes que sigam o post para criarem sua própria aplicação e irem se familiarizando com o framework rails.</p>
<p>Baixada a aplicação, descompacte e entre no diretório da aplicação <em>&#8216;primeiro_projeto&#8217;</em> via terminal. Dentro do diretório da aplicação, será necessário criar a nossa base de dados da aplicação e rodar as migrates para gerar as tabelas. Para isso, serão utilizados os comandos <strong>rake db:create</strong> e <strong>rake db:migrate</strong>, respectivamente. Executados os comandos a saída que você deverá ver é:</p>
<p style="text-align: center;">
<p><center><div id="attachment_147" class="wp-caption aligncenter" style="width: 494px"><img class="size-full wp-image-147" title="bd_ok" src="http://www.diegororiz.com.br/wp-content/uploads/2009/12/bd_ok.jpg" alt="Output da criação e aplicação das migrates" width="484" height="312" /><p class="wp-caption-text">Output da criação e aplicação das migrates</p></div></center></p>
<p>Com a nossa base de dados pronta, vamos levantar o nosso servidor web através do comando <strong>ruby script/server</strong> e acessar a nossa aplicação através da url <a href="http://localhost:3000" target="_blank">http://localhost:3000</a>. Ao criar um novo cliente e salvá-lo sem informar nenhum dos campos, receberemos uma tela de erro:</p>
<p><center><div id="attachment_149" class="wp-caption aligncenter" style="width: 312px"><img class="size-full wp-image-149" title="validation_error" src="http://www.diegororiz.com.br/wp-content/uploads/2009/12/validation_error.jpg" alt="Erros de validação na view" width="302" height="342" /><p class="wp-caption-text">Erros de validação na view</p></div></center></p>
<p>Como vocês puderam observar, as mensagens de erro são apresentadas ao usuário na língua inglesa. Este tutorial prático irá ensinar como permitir que sua aplicação apresente as mesmas em português. O primeiro passo é fazer o download do arquivo responsável pelos textos e mensagens da aplicação no <a href="http://guides.rubyonrails.org/i18n.html" target="_blank">site da gem I18n</a> (<a href="http://github.com/svenfuchs/rails-i18n/tree/master/rails/locale" target="_blank">baixe aqui o arquivo pt-BR</a>).</p>
<p>Feito o download do arquivo <strong>pt-BR.yml</strong>, o mesmo deve ser colocado dentro da pasta <strong>config/locales/</strong>. Se vocês abrirem o arquivo, verão que ele possuim uma estrutura específica onde é possível definir os níveis de variáveis através da identação de blocos e a tradução em si através das atribuições. Essa estrutura será explicada posteriormente em conjunto com o post mais avançado sobre o I18n. Com o arquivo no diretório correto, o processo de internacionalizar a sua aplicação já está 50% completo!</p>
<p>Agora, vamos alterar o arquivo <strong>enviroment.rb</strong> situado no diretório <strong>config</strong>. Caso você não tenha alterado nada neste arquivo, na linha 40, você verá</p>
<blockquote><p># config.i18n.default_locale = :de</p></blockquote>
<p>Descomente essa linha removendo o símbolo <strong>#</strong> do começo e altere o seu default_locale para <strong>&#8216;pt-BR&#8217;</strong> desta forma (entre aspas). Após fazer isto, pare o seu servidor web com o comando <strong>CTRL+C</strong> e levante-o novamente através do comando <strong>ruby script/server</strong>. Acesse novamente a <a href="http://localhost:3000/clientes/new" target="_blank">view de cadastro de clientes</a> e clique em salvar sem informar nada. Pronto! Como vocês podem ver, as mensagens de erro da sua aplicação já estão traduzidas para o nosso português! Simples assim!</p>
<p>Segue<a href="http://www.diegororiz.com.br/wp-content/uploads/2009/12/primeiro_projeto_pt_br.zip" target="_blank"> aqui o código da aplicação já pronta</a>! Caso você tenha gostado, ou tenha alguma dúvida ou sugestão para o post, comente!</p>
<p>Gostou do post e deseja sugerir algum tema? Utilize o <a href="http://www.diegororiz.com.br/sugestoes/" target="_blank">formulário de sugestões</a> ou faça a sugestão via <a href="http://www.twitter.com/diegororiz" target="_blank">twitter</a>. Ela será muito bem vinda! Obrigado mais uma vez!</p>
<p><strong>Diego Roriz</strong></p>
<p><center></center>
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.diegororiz.com.br%2F2009%2F12%2Finternacionalizacao-em-rails-i18n%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-shr">
<ul class="socials">
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Internacionaliza%C3%A7%C3%A3o+em+Rails+-+I18n+-+http://b2l.me/b4fbh+%28via+%40diegororiz%29&amp;source=shareaholic" rel="" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-mail">
			<a href="mailto:?subject=%22Internacionaliza%C3%A7%C3%A3o%20em%20Rails%20-%20I18n%22&amp;body=Link: http://www.diegororiz.com.br/2009/12/internacionalizacao-em-rails-i18n/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Hoje%20irei%20apresentar%20um%20tutorial%20pr%C3%A1tico%20sobre%20a%20gem%20I18n%2C%20respons%C3%A1vel%20pela%20internacionaliza%C3%A7%C3%A3o%20e%20localiza%C3%A7%C3%A3o%20da%20aplica%C3%A7%C3%A3o%20rails.%20Este%20post%20%C3%A9%20dedicado%20principalmente%20aos%20leitores%20que%20pediram%20o%20tema%20via%20Twitter%20e%20aos%20meus%20alunos%20que%20cursaram%20o%20Primeiro%20Curso%20de%20Ruby%20On%20Rails%20de%20Goi%C3%A2nia%20e%20ficaram%20curiosos%20quando%20eu%20expliquei%20o%20que%20esta%20gem%20era%20capaz%20de%20fazer%21%20Mas%20o%20que%20%C3%A9%20internacionaliza%C3%A7%C3%A3o%3F%20Confira%20j%C3%A1%20aqui%21" rel="" class="external" title="Enviar para um amigo?">Enviar para um amigo?</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.diegororiz.com.br/2009/12/internacionalizacao-em-rails-i18n/&amp;t=Internacionaliza%C3%A7%C3%A3o+em+Rails+-+I18n" rel="" class="external" title="Compartilhar noFacebook">Compartilhar noFacebook</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.diegororiz.com.br/2009/12/internacionalizacao-em-rails-i18n/&amp;title=Internacionaliza%C3%A7%C3%A3o+em+Rails+-+I18n" rel="" class="external" title="Compartilhar nodel.icio.us">Compartilhar nodel.icio.us</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.diegororiz.com.br/2009/12/internacionalizacao-em-rails-i18n/&amp;imageurl=" rel="" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-blogger">
			<a href="http://www.blogger.com/blog_this.pyra?t&amp;u=http://www.diegororiz.com.br/2009/12/internacionalizacao-em-rails-i18n/&amp;n=Internacionaliza%C3%A7%C3%A3o+em+Rails+-+I18n&amp;pli=1" rel="" class="external" title="Postar noBlogger">Postar noBlogger</a>
		</li>
		<li class="shr-orkut">
			<a href="http://promote.orkut.com/preview?nt=orkut.com&amp;tt=Internacionaliza%C3%A7%C3%A3o+em+Rails+-+I18n&amp;du=http://www.diegororiz.com.br/2009/12/internacionalizacao-em-rails-i18n/&amp;cn=Hoje%20irei%20apresentar%20um%20tutorial%20pr%C3%A1tico%20sobre%20a%20gem%20I18n%2C%20respons%C3%A1vel%20pela%20internacionaliza%C3%A7%C3%A3o%20e%20localiza%C3%A7%C3%A3o%20da%20aplica%C3%A7%C3%A3o%20rails.%20Este%20post%20%C3%A9%20dedicado%20principalmente%20aos%20leitores%20que%20pediram%20o%20tema%20via%20Twitter%20e%20aos%20meus%20alunos%20que%20cursaram%20o%20Primeiro%20Curso%20de%20Ruby%20On%20Rails%20de%20Goi%C3%A2nia%20e%20ficaram%20curiosos%20quando%20eu%20expliquei%20o%20que%20esta%20gem%20era%20capaz%20de%20fazer%21%20Mas%20o%20que%20%C3%A9%20internacionaliza%C3%A7%C3%A3o%3F%20Confira%20j%C3%A1%20aqui%21" rel="" class="external" title="Promover noOrkut">Promover noOrkut</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.diegororiz.com.br/2009/12/internacionalizacao-em-rails-i18n/&amp;title=Internacionaliza%C3%A7%C3%A3o+em+Rails+-+I18n&amp;summary=Hoje%20irei%20apresentar%20um%20tutorial%20pr%C3%A1tico%20sobre%20a%20gem%20I18n%2C%20respons%C3%A1vel%20pela%20internacionaliza%C3%A7%C3%A3o%20e%20localiza%C3%A7%C3%A3o%20da%20aplica%C3%A7%C3%A3o%20rails.%20Este%20post%20%C3%A9%20dedicado%20principalmente%20aos%20leitores%20que%20pediram%20o%20tema%20via%20Twitter%20e%20aos%20meus%20alunos%20que%20cursaram%20o%20Primeiro%20Curso%20de%20Ruby%20On%20Rails%20de%20Goi%C3%A2nia%20e%20ficaram%20curiosos%20quando%20eu%20expliquei%20o%20que%20esta%20gem%20era%20capaz%20de%20fazer%21%20Mas%20o%20que%20%C3%A9%20internacionaliza%C3%A7%C3%A3o%3F%20Confira%20j%C3%A1%20aqui%21&amp;source=Diego Roriz" rel="" class="external" title="Compartilhar noLinkedIn">Compartilhar noLinkedIn</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>



<br /><p>Leia também:</p><ol><li><a href='http://www.diegororiz.com.br/2010/01/ruby-versus-rails/' rel='bookmark' title='Permanent Link: Ruby versus Rails'>Ruby versus Rails</a></li>
<li><a href='http://www.diegororiz.com.br/2009/12/criando-sua-primeira-aplicacao-rails/' rel='bookmark' title='Permanent Link: Criando sua primeira aplicação Rails'>Criando sua primeira aplicação Rails</a></li>
<li><a href='http://www.diegororiz.com.br/2010/01/dica-rapida-adicionar-novos-campos-em-tabelas/' rel='bookmark' title='Permanent Link: Dica Rápida &#8211; Adicionar novos campos em tabelas'>Dica Rápida &#8211; Adicionar novos campos em tabelas</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.diegororiz.com.br/2009/12/internacionalizacao-em-rails-i18n/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Criando sua primeira aplicação Rails</title>
		<link>http://www.diegororiz.com.br/2009/12/criando-sua-primeira-aplicacao-rails/</link>
		<comments>http://www.diegororiz.com.br/2009/12/criando-sua-primeira-aplicacao-rails/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 11:38:35 +0000</pubDate>
		<dc:creator>Diego Roriz</dc:creator>
				<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[aplicação]]></category>
		<category><![CDATA[iniciante]]></category>

		<guid isPermaLink="false">http://www.rubysolucoes.tecnologia.ws/blog/?p=17</guid>
		<description><![CDATA[Este post ensina como criar um cadastro de clientes simples utilizando o framework web Rails. Aqui vocês poderão conferir como é fácil desenvolver aplicações para web se utilizar as ferramentas certas!


Leia também:<ol><li><a href='http://www.diegororiz.com.br/2010/01/ruby-versus-rails/' rel='bookmark' title='Permanent Link: Ruby versus Rails'>Ruby versus Rails</a></li>
<li><a href='http://www.diegororiz.com.br/2009/12/internacionalizacao-em-rails-i18n/' rel='bookmark' title='Permanent Link: Internacionalização em Rails &#8211; I18n'>Internacionalização em Rails &#8211; I18n</a></li>
<li><a href='http://www.diegororiz.com.br/2010/02/java-versus-ruby-on-rails/' rel='bookmark' title='Permanent Link: Java versus Ruby On Rails'>Java versus Ruby On Rails</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.diegororiz.com.br%2F2009%2F12%2Fcriando-sua-primeira-aplicacao-rails%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.diegororiz.com.br%2F2009%2F12%2Fcriando-sua-primeira-aplicacao-rails%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.diegororiz.com.br%2F2009%2F12%2Fcriando-sua-primeira-aplicacao-rails%2F&amp;source=diegororiz&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Hoje irei mostrar a vocês como criar facilmente uma aplicação web. Para mensurar quão fácil é criar uma aplicação web com rails, este  post irá construir um cadastro de clientes do <strong>ZERO</strong>. Será utilizada a linguagem Ruby e o framework Rails. Para o tutorial conseguir o resultado esperado, considero que o Ruby, o Rails e o MySQL estão corretamente instalados na máquina local. Para garantir que o ambiente de desenvolvimento se encontra em perfeitas condições, execute os comandos mostrados a seguir. Eles devem reproduzir os seguintes resultados:</p>
<pre>ruby --version
ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]

gem --version
1.3.5

rails --version
Rails 2.3.5</pre>
<p>Caso você veja resultados similares aos mostrados aqui, você já está apto a desenvolver a sua primeira aplicação em rails. Para criar uma nova aplicação em rails, execute via linha de comando</p>
<p><center></p>
<pre>rails primeiro_projeto -d mysql</pre>
<p></center></p>
<p>Feito isso, você irá perceber que muitos arquivos foram criados dentro da pasta do projeto. Neste caso, criados na pasta <strong>primeiro_projeto</strong>. Após ter criado o projeto, o próximo passo é ver se tudo correu bem. Para isso, executem o seguinte comando no terminal</p>
<blockquote><p>script/server</p>
</blockquote>
<p>e acessem  a aplicação no browser/navegador através da url <a title="http://localhost:3000" href="http://localhost:3000" target="_blank">http://localhost:3000</a> visualizando o seguinte resultado:</p>
<p style="text-align: center;">
<p style="text-align: left;">
<div id="attachment_28" class="wp-caption aligncenter" style="width: 462px"><img class="size-full wp-image-28" title="welcome_rails" src="http://www.diegororiz.com.br/wp-content/uploads/2009/12/welcome_rails.jpg" alt="Tela de abertura projeto rails" width="452" height="327" /><p class="wp-caption-text">Tela de abertura projeto rails</p></div>
<p style="text-align: left;">Se vocês clicarem no link <strong>About your application&#8217;s enviroment</strong>, verão uma mensagem de erro</p>
<p style="text-align: left;">
<div id="attachment_29" class="wp-caption aligncenter" style="width: 451px"><img class="size-full wp-image-29" title="bd_wrong" src="http://www.diegororiz.com.br/wp-content/uploads/2009/12/bd_wrong.jpg" alt="Erro ocasionado pela não criação do banco de dados da aplicação" width="441" height="182" /><p class="wp-caption-text">Erro ocasionado pela não criação do banco de dados da aplicação</p></div>
<p>Para seguirmos construindo nossa aplicação, devemos criar nosso banco de dados. Neste exemplo, irei utilizar MySQL como mencionado anteriormente. Vamos editar o arquivo <strong>database.yml</strong> localizado na pasta <strong>config</strong>.</p>
<pre>development:
  adapter: mysql
  encoding: utf8
  reconnect: false
  database: primeiro_projeto_development
  pool: 5
  username: root
  password: root
  socket: /var/run/mysqld/mysqld.sock</pre>
<p>Depois de informar a senha do usuário do banco, execute o comando</p>
<blockquote><p>rake db:create</p>
</blockquote>
<p>E caso você acesse novamente a url <a title="http://localhost:3000" href="http://localhost:3000/" target="_blank">http://localhost:3000</a>, e clicar em <strong>About your application&#8217;s enviroment</strong>, visualizarão todas as informações referentes ao seu ambiente de desenvolvimento:</p>
<div id="attachment_34" class="wp-caption aligncenter" style="width: 424px"><img class="size-full wp-image-34" title="enviroment_variables" src="http://www.diegororiz.com.br/wp-content/uploads/2009/12/enviroment_variables.jpg" alt="Variáveis de ambiente do projeto" width="414" height="345" /><p class="wp-caption-text">Variáveis de ambiente do projeto</p></div>
<p>Agora que nosso ambiente de desenvolvimento do projeto está ok, vamos por a mão na massa?! Vamos gerar todo o MVC (<a title="Model, View e Controller" href="http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller" target="_blank">Model, View e Controller</a>) do modelo Cliente. Esse modelo/classe terá os seguintes atributos:</p>
<ul>
<li>nome, string</li>
<li>idade, integer</li>
<li>endereço, text</li>
<li>celular:string</li>
</ul>
<p>Para criar isso, iremos executar o seguinte comando</p>
<pre>script/generate scaffold cliente nome:string idade:integer endereco:text celular:string</pre>
<p style="text-align: center;">
<div id="attachment_36" class="wp-caption aligncenter" style="width: 665px"><img class="size-full wp-image-36" title="scaffold" src="http://www.diegororiz.com.br/wp-content/uploads/2009/12/scaffold.jpg" alt="Output scaffold do model de Cliente" width="655" height="359" /><p class="wp-caption-text">Output scaffold do model de Cliente</p></div>
<p>Depois de executado esse comando, você irá observar que muitos arquivos serão criados. Isto porque o scaffold é um gerador de código automático. Ele gera todo o MVC do modelo que você informou. Não acredita? Então vamos ver! Antes de irmos para a aplicação no browser, temos que migrar nossa base de dados para que ela possa contemplar o novo modelo desenvolvido. Para isso, iremos executar o seguinte comando:</p>
<pre>
  rake db:migrate
</pre>
<p>Se vocês observarem o resultado deste comando, irão ver que o retorno do mesmo é bem intuitiva, criando a tabela relativa aos clientes.</p>
<p style="text-align: center;">
<div id="attachment_37" class="wp-caption aligncenter" style="width: 665px"><img class="size-full wp-image-37" title="migrate" src="http://www.diegororiz.com.br/wp-content/uploads/2009/12/migrate.jpg" alt="Output da execução da migrate do model de Cliente" width="655" height="359" /><p class="wp-caption-text">Output da execução da migrate do model de Cliente</p></div>
<p>Executada a migrate, agora temos uma tabela de clientes na nossa base de dados e já podemos testar nossa aplicação no browser! Quer ver?! Então acesse <a title="http://localhost:3000/clientes" href="http://localhost:3000/clientes" target="_blank">http://localhost:3000/clientes</a> e verão a sua aplicação funcionando no browser!!! A seguir imagens da listagem dos clientes cadastrados</p>
<div id="attachment_45" class="wp-caption aligncenter" style="width: 533px"><img class="size-full wp-image-45" title="index_clientes" src="http://www.diegororiz.com.br/wp-content/uploads/2009/12/index_clientes.jpg" alt="Listagem de clientes cadastrados" width="523" height="175" /><p class="wp-caption-text">Listagem de clientes cadastrados</p></div>
<p>e do formulário de criação de novo cliente!</p>
<div id="attachment_46" class="wp-caption aligncenter" style="width: 331px"><img class="size-full wp-image-46" title="new_cliente" src="http://www.diegororiz.com.br/wp-content/uploads/2009/12/new_cliente.jpg" alt="Formulário de criação de novo cliente" width="321" height="561" /><p class="wp-caption-text">Formulário de criação de novo cliente</p></div>
<p>Espero que esse post consiga mostrar para vocês quão fácil é trabalhar com rails!!! Qualquer dúvida, postem um comentário! Gostou do post?! Comente e indique! =]</p>
<p><em>Atenciosamente,</em><br />
<strong>Diego Roriz</strong></p>
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.diegororiz.com.br%2F2009%2F12%2Fcriando-sua-primeira-aplicacao-rails%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-shr">
<ul class="socials">
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Criando+sua+primeira+aplica%C3%A7%C3%A3o+Rails+-+http://b2l.me/b4fbn+%28via+%40diegororiz%29&amp;source=shareaholic" rel="" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-mail">
			<a href="mailto:?subject=%22Criando%20sua%20primeira%20aplica%C3%A7%C3%A3o%20Rails%22&amp;body=Link: http://www.diegororiz.com.br/2009/12/criando-sua-primeira-aplicacao-rails/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Este%20post%20ensina%20como%20criar%20um%20cadastro%20de%20clientes%20simples%20utilizando%20o%20framework%20web%20Rails.%20Aqui%20voc%C3%AAs%20poder%C3%A3o%20conferir%20como%20%C3%A9%20f%C3%A1cil%20desenvolver%20aplica%C3%A7%C3%B5es%20para%20web%20se%20utilizar%20as%20ferramentas%20certas%21" rel="" class="external" title="Enviar para um amigo?">Enviar para um amigo?</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.diegororiz.com.br/2009/12/criando-sua-primeira-aplicacao-rails/&amp;t=Criando+sua+primeira+aplica%C3%A7%C3%A3o+Rails" rel="" class="external" title="Compartilhar noFacebook">Compartilhar noFacebook</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.diegororiz.com.br/2009/12/criando-sua-primeira-aplicacao-rails/&amp;title=Criando+sua+primeira+aplica%C3%A7%C3%A3o+Rails" rel="" class="external" title="Compartilhar nodel.icio.us">Compartilhar nodel.icio.us</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.diegororiz.com.br/2009/12/criando-sua-primeira-aplicacao-rails/&amp;imageurl=" rel="" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-blogger">
			<a href="http://www.blogger.com/blog_this.pyra?t&amp;u=http://www.diegororiz.com.br/2009/12/criando-sua-primeira-aplicacao-rails/&amp;n=Criando+sua+primeira+aplica%C3%A7%C3%A3o+Rails&amp;pli=1" rel="" class="external" title="Postar noBlogger">Postar noBlogger</a>
		</li>
		<li class="shr-orkut">
			<a href="http://promote.orkut.com/preview?nt=orkut.com&amp;tt=Criando+sua+primeira+aplica%C3%A7%C3%A3o+Rails&amp;du=http://www.diegororiz.com.br/2009/12/criando-sua-primeira-aplicacao-rails/&amp;cn=Este%20post%20ensina%20como%20criar%20um%20cadastro%20de%20clientes%20simples%20utilizando%20o%20framework%20web%20Rails.%20Aqui%20voc%C3%AAs%20poder%C3%A3o%20conferir%20como%20%C3%A9%20f%C3%A1cil%20desenvolver%20aplica%C3%A7%C3%B5es%20para%20web%20se%20utilizar%20as%20ferramentas%20certas%21" rel="" class="external" title="Promover noOrkut">Promover noOrkut</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.diegororiz.com.br/2009/12/criando-sua-primeira-aplicacao-rails/&amp;title=Criando+sua+primeira+aplica%C3%A7%C3%A3o+Rails&amp;summary=Este%20post%20ensina%20como%20criar%20um%20cadastro%20de%20clientes%20simples%20utilizando%20o%20framework%20web%20Rails.%20Aqui%20voc%C3%AAs%20poder%C3%A3o%20conferir%20como%20%C3%A9%20f%C3%A1cil%20desenvolver%20aplica%C3%A7%C3%B5es%20para%20web%20se%20utilizar%20as%20ferramentas%20certas%21&amp;source=Diego Roriz" rel="" class="external" title="Compartilhar noLinkedIn">Compartilhar noLinkedIn</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>



<br /><p>Leia também:</p><ol><li><a href='http://www.diegororiz.com.br/2010/01/ruby-versus-rails/' rel='bookmark' title='Permanent Link: Ruby versus Rails'>Ruby versus Rails</a></li>
<li><a href='http://www.diegororiz.com.br/2009/12/internacionalizacao-em-rails-i18n/' rel='bookmark' title='Permanent Link: Internacionalização em Rails &#8211; I18n'>Internacionalização em Rails &#8211; I18n</a></li>
<li><a href='http://www.diegororiz.com.br/2010/02/java-versus-ruby-on-rails/' rel='bookmark' title='Permanent Link: Java versus Ruby On Rails'>Java versus Ruby On Rails</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.diegororiz.com.br/2009/12/criando-sua-primeira-aplicacao-rails/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>
