<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;A0QNRnY6eCp7ImA9WhRaE0o.&quot;"><id>tag:blogger.com,1999:blog-5165138530817586147</id><updated>2012-02-16T06:03:17.810-02:00</updated><category term="autenticação" /><category term="ruby" /><category term="agilebahia" /><category term="combo" /><category term="phpba" /><category term="relacionamento" /><category term="filtros" /><category term="unime" /><category term="livro" /><category term="simple" /><category term="pesquisa" /><category term="area1" /><category term="maré" /><category term="form" /><category term="rest" /><category term="crud" /><category term="ekaaty" /><category term="many-to-many" /><category term="railsbam rails" /><category term="controller" /><category term="has_many" /><category term="view" /><category term="rails" /><category term="agilidade" /><category term="RoR" /><category term="search" /><category term="belongs_to" /><category term="model" /><category term="use" /><category term="authlogic" /><category term="generator" /><category term="cabeça" /><category term="javabahia" /><title>RailsBA</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://bahiaonrails.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://bahiaonrails.blogspot.com/" /><author><name>Luciano Borges</name><uri>http://www.blogger.com/profile/14731628279494264615</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>19</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/BahiaOnRails" /><feedburner:info uri="bahiaonrails" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:browserFriendly></feedburner:browserFriendly><entry gd:etag="W/&quot;CU4FR3kzeCp7ImA9WxFXFEg.&quot;"><id>tag:blogger.com,1999:blog-5165138530817586147.post-2797499528335907608</id><published>2010-05-21T11:56:00.001-03:00</published><updated>2010-05-21T11:58:36.780-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-21T11:58:36.780-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="unime" /><title>XIII Semana de Informática BSI e CST Unime</title><content type="html">&lt;div style="text-align: center;"&gt;&lt;a href="https://sites.google.com/site/infoxiii/"&gt;https://sites.google.com/site/infoxiii/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9MaQG9nUv0w/S_afXB3i6DI/AAAAAAAAAaE/-UNQUYo7Gm8/s1600/unime.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 242px;" src="http://3.bp.blogspot.com/_9MaQG9nUv0w/S_afXB3i6DI/AAAAAAAAAaE/-UNQUYo7Gm8/s400/unime.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5473737615102634034" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5165138530817586147-2797499528335907608?l=bahiaonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/BahiaOnRails/~4/ynNAba8-dFw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bahiaonrails.blogspot.com/feeds/2797499528335907608/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://bahiaonrails.blogspot.com/2010/05/xiii-semana-de-informatica-bsi-e-cst.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/2797499528335907608?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/2797499528335907608?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BahiaOnRails/~3/ynNAba8-dFw/xiii-semana-de-informatica-bsi-e-cst.html" title="XIII Semana de Informática BSI e CST Unime" /><author><name>Luciano Borges</name><uri>http://www.blogger.com/profile/14731628279494264615</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_9MaQG9nUv0w/S_afXB3i6DI/AAAAAAAAAaE/-UNQUYo7Gm8/s72-c/unime.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://bahiaonrails.blogspot.com/2010/05/xiii-semana-de-informatica-bsi-e-cst.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUCQXY-eCp7ImA9WxBXGUU.&quot;"><id>tag:blogger.com,1999:blog-5165138530817586147.post-1425692809108495281</id><published>2010-01-31T22:19:00.002-03:00</published><updated>2010-01-31T22:21:00.850-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-31T22:21:00.850-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="agilebahia" /><category scheme="http://www.blogger.com/atom/ns#" term="area1" /><category scheme="http://www.blogger.com/atom/ns#" term="railsbam rails" /><category scheme="http://www.blogger.com/atom/ns#" term="phpba" /><category scheme="http://www.blogger.com/atom/ns#" term="ekaaty" /><category scheme="http://www.blogger.com/atom/ns#" term="javabahia" /><title>Ekaaty Day 2010</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_9MaQG9nUv0w/S2YsWOMTrLI/AAAAAAAAAZA/VbfTSF5pSwU/s1600-h/programacaoekaatyday2010.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 272px; height: 400px;" src="http://4.bp.blogspot.com/_9MaQG9nUv0w/S2YsWOMTrLI/AAAAAAAAAZA/VbfTSF5pSwU/s400/programacaoekaatyday2010.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5433078760747543730" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5165138530817586147-1425692809108495281?l=bahiaonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/BahiaOnRails/~4/vzQ1fGi4OfI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bahiaonrails.blogspot.com/feeds/1425692809108495281/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://bahiaonrails.blogspot.com/2010/01/ekaaty-day-2010.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/1425692809108495281?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/1425692809108495281?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BahiaOnRails/~3/vzQ1fGi4OfI/ekaaty-day-2010.html" title="Ekaaty Day 2010" /><author><name>Luciano Borges</name><uri>http://www.blogger.com/profile/14731628279494264615</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_9MaQG9nUv0w/S2YsWOMTrLI/AAAAAAAAAZA/VbfTSF5pSwU/s72-c/programacaoekaatyday2010.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://bahiaonrails.blogspot.com/2010/01/ekaaty-day-2010.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMDQHg4eCp7ImA9WxNbGU4.&quot;"><id>tag:blogger.com,1999:blog-5165138530817586147.post-1939280629638242990</id><published>2009-11-22T22:00:00.002-03:00</published><updated>2009-11-22T22:07:51.630-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-22T22:07:51.630-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="many-to-many" /><title>Tela de Cadastro com Many-to-Many - correção</title><content type="html">&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Pessoal, &lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;O Maurício Linhares (&lt;/span&gt;&lt;/span&gt;&lt;a target="_blank" rel="nofollow" href="http://codeshooter.wordpress.com/" style="color: rgb(85, 26, 139); "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;http://codeshooter.wordpress.com&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;) deu uma dica para melhorar o código do post anterior, na partial &lt;b&gt;_form.rhtml&lt;/b&gt; onde temos o nome do campo checkbox, devemos trocar d&lt;b&gt;isciplina_ids[]&lt;/b&gt; por &lt;b&gt;aluno[disciplina_ids][]&lt;/b&gt; e no controller &lt;b&gt;alunos_controller.rb&lt;/b&gt; não é necessário colocar o código &lt;b&gt;@aluno.disciplinas = Disciplina.find(params[:disciplina_ids]) if params[:disciplina_ids]&lt;/b&gt; nos métodos &lt;b&gt;create&lt;/b&gt; e &lt;b&gt;update&lt;/b&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Valeu Maurício pela dica!&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5165138530817586147-1939280629638242990?l=bahiaonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/BahiaOnRails/~4/q77GWsQjTj8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bahiaonrails.blogspot.com/feeds/1939280629638242990/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://bahiaonrails.blogspot.com/2009/11/tela-de-cadastro-com-many-to-many_22.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/1939280629638242990?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/1939280629638242990?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BahiaOnRails/~3/q77GWsQjTj8/tela-de-cadastro-com-many-to-many_22.html" title="Tela de Cadastro com Many-to-Many - correção" /><author><name>Luciano Borges</name><uri>http://www.blogger.com/profile/14731628279494264615</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://bahiaonrails.blogspot.com/2009/11/tela-de-cadastro-com-many-to-many_22.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQARn87eyp7ImA9WxNbF0s.&quot;"><id>tag:blogger.com,1999:blog-5165138530817586147.post-4354554672428854981</id><published>2009-11-20T19:22:00.021-03:00</published><updated>2009-11-20T22:52:27.103-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-20T22:52:27.103-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby" /><category scheme="http://www.blogger.com/atom/ns#" term="controller" /><category scheme="http://www.blogger.com/atom/ns#" term="rails" /><category scheme="http://www.blogger.com/atom/ns#" term="view" /><category scheme="http://www.blogger.com/atom/ns#" term="many-to-many" /><title>Tela de Cadastro com Many-to-Many</title><content type="html">&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: arial; "&gt;* Esse post foi baseado no tutorial de Jeffrey Hicks e no Railscast número 47.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;A idéia deste post é mostrar na prática como fazer um tela de cadastro havendo uma relação many-to-many. Para criar esse tutorial estou usando o Netbeans 6.7.1 e o banco de dados MySQL.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Primeiro passo é criar um projeto Rails chamado &lt;b&gt;escola&lt;/b&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Esse exemplo mostra uma parte do que seria um sistema acadêmico, onde eu tenho uma tabela de alunos, disciplinas e uma relação alunos por disciplina. Para trabalhar com o padrão do Rails seguiremos a convenção de nome para as tabelas e os campos.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style=" ;font-family:Georgia, serif;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9MaQG9nUv0w/SwcZ7PBFNbI/AAAAAAAAAWM/hPRS1AwOa_E/s1600/der.jpg"&gt;&lt;img src="http://3.bp.blogspot.com/_9MaQG9nUv0w/SwcZ7PBFNbI/AAAAAAAAAWM/hPRS1AwOa_E/s400/der.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5406318383115613618" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 212px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Repare que o nomes das tabelas estão no plural.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Os campos chaves são chamados de id.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;A tabela de relacionamento é na ordem alfabética.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;O campo de relacionamento é o nome da entidade no singular seguido de _id.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;O segundo passo é gerar os scaffolds para &lt;b&gt;aluno&lt;/b&gt; e &lt;b&gt;disciplina&lt;/b&gt;, abaixo mostro a tela de gerar o scaffold do Netbeans 6.7.1 para o model aluno, a mesma operação deve ser feita para disciplina (lembre-se que o nome do model deve ser no singular).&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style=" ;font-family:Georgia, serif;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_9MaQG9nUv0w/SwcbZDAzYvI/AAAAAAAAAWc/H-JB8bxxpaQ/s1600/scaffold.jpg"&gt;&lt;img src="http://1.bp.blogspot.com/_9MaQG9nUv0w/SwcbZDAzYvI/AAAAAAAAAWc/H-JB8bxxpaQ/s400/scaffold.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5406319994800923378" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 289px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Altere os models aluno.rb e disciplina adicionando o método has_and_belongs_to_many conforme imagem abaixo.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style=" ;font-family:Georgia, serif;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_9MaQG9nUv0w/Swcc7Tqly4I/AAAAAAAAAWk/1ruXkjDzSHM/s1600/models.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/_9MaQG9nUv0w/Swcc7Tqly4I/AAAAAAAAAWk/1ruXkjDzSHM/s400/models.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5406321682898340738" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 210px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Essa alteração diz que disciplina tem e pertence a muitos alunos e aluno tem e pertence a muitas disciplinas. O método has_and_belongs_to_many é que faz o relacionamento n:n.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Como precisaremos de uma tabela de relacionamento, vamos criar uma migração de nome create_alunos_disciplinas para essa tabela.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style=" ;font-family:Georgia, serif;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_9MaQG9nUv0w/SwcejcN3FiI/AAAAAAAAAW0/nyMNtAHOKj0/s1600/migration.jpg"&gt;&lt;img src="http://2.bp.blogspot.com/_9MaQG9nUv0w/SwcejcN3FiI/AAAAAAAAAW0/nyMNtAHOKj0/s400/migration.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5406323471900153378" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 289px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Edite o código dessa nova migration conforme imagem abaixo:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_9MaQG9nUv0w/SwdG0cgbeZI/AAAAAAAAAX8/5y9ZjlhCCJo/s1600/migration2.jpg"&gt;&lt;img src="http://2.bp.blogspot.com/_9MaQG9nUv0w/SwdG0cgbeZI/AAAAAAAAAX8/5y9ZjlhCCJo/s400/migration2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5406367744500922770" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 224px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=""&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Essa tabela não terá a chave primário id. Rode as migrations.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Para permitir que o usuário informe um aluno com várias disciplinas, vamos utilizar checkbox múltiplos. O nosso formulário será gerado dinamicamente a partir das disciplinas cadastradas no banco de dados. Nossa view vai depender do controller alunos_controller para carregar as disciplinas, altere o método &lt;b&gt;new &lt;/b&gt;e&lt;b&gt; edit &lt;/b&gt;do controller &lt;b&gt;alunos_controller.rb &lt;/b&gt;conforme imagem abaixo.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style=" ;font-family:Georgia, serif;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_9MaQG9nUv0w/SwclVvwB8sI/AAAAAAAAAXM/O2-pHoWozdE/s1600/alunoscontroller.jpg"&gt;&lt;img src="http://1.bp.blogspot.com/_9MaQG9nUv0w/SwclVvwB8sI/AAAAAAAAAXM/O2-pHoWozdE/s400/alunoscontroller.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5406330933206971074" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 276px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;div&gt;Agora iremos customizar as views edit e new de alunos. Vamos fazer isso em um único local, ou seja, na partial _form.rhtml - para isso crie dentro de views/alunos o arquivo _form.rhtml e coloque o código abaixo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-family:Georgia, serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-family:Georgia, serif;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_9MaQG9nUv0w/Swcx7UgPYHI/AAAAAAAAAXk/9Pom6LBH1Fs/s1600/partial.jpg"&gt;&lt;img src="http://2.bp.blogspot.com/_9MaQG9nUv0w/Swcx7UgPYHI/AAAAAAAAAXk/9Pom6LBH1Fs/s400/partial.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5406344772867547250" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 293px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Nessa partial colocamos um for para carregar os checkbox com os valores e nomes das disciplinas disponibilizadas pelo objeto &lt;b&gt;@disciplinas&lt;/b&gt; que foi passado nos métodos &lt;b&gt;new&lt;/b&gt; e &lt;b&gt;edit&lt;/b&gt; do controller. Repare que o botão &lt;b&gt;f.submit&lt;/b&gt; tá com nome &lt;b&gt;button&lt;/b&gt;, esse nome é passado como parâmetro na chamada da partial nas views new e edit e o :disable_with serve para desabilitar o botão com a mensagem "Aguarde..." enquanto a requisição estiver ocorrendo. Abaixo o código das views alteradas, veja que na chamada da partial, passamos o parâmetro &lt;b&gt;:button&lt;/b&gt; com o texto que vai aparecer nos botões.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-family:Georgia, serif;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9MaQG9nUv0w/Swcwl2b6NqI/AAAAAAAAAXc/WcYMYahNp70/s1600/views.jpg"&gt;&lt;img src="http://3.bp.blogspot.com/_9MaQG9nUv0w/Swcwl2b6NqI/AAAAAAAAAXc/WcYMYahNp70/s400/views.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5406343304507438754" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 198px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Vamos alterar agora a view index de alunos para poder mostrar as disciplinas que o mesmo está associado.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-family:Georgia, serif;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_9MaQG9nUv0w/SwczWW16OGI/AAAAAAAAAXs/6G3rmS12Kzk/s1600/index.jpg"&gt;&lt;img src="http://1.bp.blogspot.com/_9MaQG9nUv0w/SwczWW16OGI/AAAAAAAAAXs/6G3rmS12Kzk/s400/index.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5406346336863402082" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 370px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:Georgia, serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Os métodos &lt;b&gt;update&lt;/b&gt; e &lt;b&gt;create&lt;/b&gt; de &lt;b&gt;alunos_controller.rb&lt;/b&gt; recebem requisições das views edit e new. Para armazenar o relacionamento precisamos converter disciplinas_ids para objetos Disciplina com &lt;b&gt;Disciplina.find(@params[:disciplina_ids]) if @params[:disciplina_ids]&lt;/b&gt;. O if previne erros de objetos nulos quando o aluno não estiver associado a alguma disciplina.&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style=" ;font-family:Georgia, serif;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_9MaQG9nUv0w/Swc5bR_RgAI/AAAAAAAAAX0/RSb1hV7e4fM/s1600/controller.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/_9MaQG9nUv0w/Swc5bR_RgAI/AAAAAAAAAX0/RSb1hV7e4fM/s400/controller.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5406353018529611778" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 202px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Agora é só testar!!!!  Veja algumas telas abaixo.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; "&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_9MaQG9nUv0w/SwdHwO6f9tI/AAAAAAAAAYE/1_9Aq0yeO_8/s1600/telas.jpg"&gt;&lt;img src="http://1.bp.blogspot.com/_9MaQG9nUv0w/SwdHwO6f9tI/AAAAAAAAAYE/1_9Aq0yeO_8/s400/telas.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5406368771644323538" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 247px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5165138530817586147-4354554672428854981?l=bahiaonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/BahiaOnRails/~4/MNlaR8_yYv4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bahiaonrails.blogspot.com/feeds/4354554672428854981/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://bahiaonrails.blogspot.com/2009/11/tela-de-cadastro-com-many-to-many.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/4354554672428854981?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/4354554672428854981?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BahiaOnRails/~3/MNlaR8_yYv4/tela-de-cadastro-com-many-to-many.html" title="Tela de Cadastro com Many-to-Many" /><author><name>Luciano Borges</name><uri>http://www.blogger.com/profile/14731628279494264615</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_9MaQG9nUv0w/SwcZ7PBFNbI/AAAAAAAAAWM/hPRS1AwOa_E/s72-c/der.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://bahiaonrails.blogspot.com/2009/11/tela-de-cadastro-com-many-to-many.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcASHYycSp7ImA9WxNbEEs.&quot;"><id>tag:blogger.com,1999:blog-5165138530817586147.post-4032291895108541367</id><published>2009-11-12T19:36:00.004-03:00</published><updated>2009-11-12T19:47:29.899-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-12T19:47:29.899-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="pesquisa" /><category scheme="http://www.blogger.com/atom/ns#" term="rest" /><category scheme="http://www.blogger.com/atom/ns#" term="rails" /><category scheme="http://www.blogger.com/atom/ns#" term="form" /><category scheme="http://www.blogger.com/atom/ns#" term="search" /><category scheme="http://www.blogger.com/atom/ns#" term="simple" /><title>Formulário Simples de Pesquisa</title><content type="html">&lt;div style="text-align: left;"&gt;A idéia desse post é permitir filtrar o grid de Locadoras que está na página index.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_9MaQG9nUv0w/SvyOIJi19zI/AAAAAAAAAU0/dSuPvYy3z1A/s1600-h/filtro01.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 112px;" src="http://4.bp.blogspot.com/_9MaQG9nUv0w/SvyOIJi19zI/AAAAAAAAAU0/dSuPvYy3z1A/s400/filtro01.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5403349923589912370" /&gt;&lt;/a&gt;&lt;p class="MsoNormal"&gt;Sabemos que a página inicial é a página index.html.erb do controller Locadoras, abra o arquivo e adicione o trecho de código destacado.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_9MaQG9nUv0w/SvyO1sfVgpI/AAAAAAAAAU8/8JY1b9fgiu8/s1600-h/filtro02.jpg"&gt;&lt;br /&gt;&lt;img src="http://2.bp.blogspot.com/_9MaQG9nUv0w/SvyO1sfVgpI/AAAAAAAAAU8/8JY1b9fgiu8/s400/filtro02.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5403350706064556690" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 182px; " /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align:justify"&gt;O helper form_tag inicia uma tag form que aponta a ação para uma url configurada com locadoras_path e método get. De acordo com métodos padrões REST, locadoras_path será substituida por /locadoras, ou seja, com o verbo get e o path /locadoras, a ação a ser executada será a index - trocando em miúdos, carregará a própria página.&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify"&gt;O helper text_field_tag cria um campo texto padrão, onde o primeiro parâmetro é o nome do campo e o segundo é o value - trocando em miúdos, um campo com nome :search e o valor será o próprio valor digitado quando o formulário for submetido.&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify"&gt;O helper submit_tag cria um botão submit padrão, onde o primeiro parâmetro é o texto que aparecerá no botão, o segundo parâmetro é um hash, que nesse caso, estamos dizendo que o botão não tem campo nome, para que não seja passado pela url. &lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify"&gt;Como estamos chamando o método index, vamos alterá-lo no controller de locadoras.&lt;/p&gt;&lt;p class="MsoNormal" style="text-align:justify"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_9MaQG9nUv0w/SvyO15h4D1I/AAAAAAAAAVE/M0yBAC-W5Ms/s1600-h/filtro03.jpg"&gt;&lt;br /&gt;&lt;img src="http://2.bp.blogspot.com/_9MaQG9nUv0w/SvyO15h4D1I/AAAAAAAAAVE/M0yBAC-W5Ms/s400/filtro03.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5403350709564870482" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 233px; " /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align:justify"&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align:justify"&gt;Reparem que agora o método índex retorna @locadoras, que ao invés de ter ser resultado do método all (Locadoras.all), é resultado do método search, e de onde vem esse método search? Vem do model locadora, conforme abaixo:&lt;/p&gt;&lt;p class="MsoNormal" style="text-align:justify"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_9MaQG9nUv0w/SvyO10g297I/AAAAAAAAAVM/rW8P11TvfVw/s1600-h/filtro04.jpg"&gt;&lt;br /&gt;&lt;img src="http://4.bp.blogspot.com/_9MaQG9nUv0w/SvyO10g297I/AAAAAAAAAVM/rW8P11TvfVw/s400/filtro04.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5403350708218427314" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 173px; " /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align:justify"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align:justify"&gt;Criamos o método search que recebe um parâmetro, verificamos se p existe, em caso afirmativo, chamamos o método find, onde o mesmo retornará todos os registros que atendam à condição passada, caso contrário, retorna todos os registros.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Este post foi baseado pelo vídeo abaixo:&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a href="http://media.railscasts.com/videos/037_simple_search_form.mov"&gt;http://media.railscasts.com/videos/037_simple_search_form.mov&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5165138530817586147-4032291895108541367?l=bahiaonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/BahiaOnRails/~4/2NLP_NJ_53g" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bahiaonrails.blogspot.com/feeds/4032291895108541367/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://bahiaonrails.blogspot.com/2009/11/formulario-simples-de-pesquisa.html#comment-form" title="2 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/4032291895108541367?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/4032291895108541367?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BahiaOnRails/~3/2NLP_NJ_53g/formulario-simples-de-pesquisa.html" title="Formulário Simples de Pesquisa" /><author><name>Luciano Borges</name><uri>http://www.blogger.com/profile/14731628279494264615</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_9MaQG9nUv0w/SvyOIJi19zI/AAAAAAAAAU0/dSuPvYy3z1A/s72-c/filtro01.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://bahiaonrails.blogspot.com/2009/11/formulario-simples-de-pesquisa.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4GSHs5fyp7ImA9WxNVEks.&quot;"><id>tag:blogger.com,1999:blog-5165138530817586147.post-8502440931218708115</id><published>2009-10-22T22:51:00.002-03:00</published><updated>2009-10-22T22:55:29.527-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-22T22:55:29.527-03:00</app:edited><title>LinguÁgil 2009</title><content type="html">&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 240px; height: 81px;" src="http://3.bp.blogspot.com/_9MaQG9nUv0w/SuEM6NJ38WI/AAAAAAAAAUs/mJTg8a8dfmM/s400/linguagil.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5395608022669586786" /&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"    style="font-family:Arial, Verdana, sans-serif;font-size:100%;color:#444444;"&gt;&lt;span class="Apple-style-span"  style=" line-height: 20px;font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="  color: rgb(68, 68, 68); line-height: 20px; font-family:Arial, Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;A proliferação de tecnologias para o desenvolvimento de aplicações web vem gerando exaustivas discussões sobre qual adota-las em seus projetos. Java, PHP e Ruby estão entre as 10 linguagens de programação mais utilizadas no mundo, segundo a &lt;/span&gt;&lt;a href="http://www.tiobe.com/tiobe_index/index.htm" rel="nofollow" style="color: rgb(0, 51, 204); text-decoration: underline; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;TIOBE Programming Community&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;. Em paralelo, os mesmos profissionais buscam melhorar seus serviços adotando metodologias que ao mesmo tempo permitam o controle de seus projetos, gerem valor agregado aos clientes e evitem excesso de burocracia.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"   style="  color: rgb(68, 68, 68); line-height: 20px; font-family:Arial, Verdana, sans-serif;font-size:13px;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Diante desse cenário, os grupos &lt;/span&gt;&lt;a href="http://br.groups.yahoo.com/group/agile-bahia" rel="nofollow" style="color: rgb(0, 51, 204); text-decoration: underline; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;AgileBahia&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;, &lt;/span&gt;&lt;a href="http://javabahia.blogspot.com/" style="color: rgb(0, 51, 204); text-decoration: underline; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;JavaBahia&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;, &lt;/span&gt;&lt;a href="http://groups.google.com.br/group/phpba" style="color: rgb(0, 51, 204); text-decoration: underline; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;PHPBahia&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; e &lt;/span&gt;&lt;a href="http://bahiaonrails.blogspot.com/" style="color: rgb(0, 51, 204); text-decoration: underline; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;RailsBahia&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; realizarão em Salvador a edição 2009 do&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;LinguÁgil - Misturando &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Linguagens e Agilidade&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;. Inédito na Bahia, o evento reune algumas das principais comunidades de TI, buscando estimular aprendizado e discussões em torno de linguagens de programação e metodologias ágeis.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Visitem o site: &lt;/span&gt;&lt;a href="http://www.linguagil.com.br/"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;http://www.linguagil.com.br/&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5165138530817586147-8502440931218708115?l=bahiaonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/BahiaOnRails/~4/UTtYtAS8eYw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bahiaonrails.blogspot.com/feeds/8502440931218708115/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://bahiaonrails.blogspot.com/2009/10/linguagil-2009.html#comment-form" title="1 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/8502440931218708115?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/8502440931218708115?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BahiaOnRails/~3/UTtYtAS8eYw/linguagil-2009.html" title="LinguÁgil 2009" /><author><name>Luciano Borges</name><uri>http://www.blogger.com/profile/14731628279494264615</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_9MaQG9nUv0w/SuEM6NJ38WI/AAAAAAAAAUs/mJTg8a8dfmM/s72-c/linguagil.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://bahiaonrails.blogspot.com/2009/10/linguagil-2009.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUARX46fip7ImA9WxNVEk4.&quot;"><id>tag:blogger.com,1999:blog-5165138530817586147.post-7603290192879866836</id><published>2009-10-21T20:26:00.009-03:00</published><updated>2009-10-22T14:40:44.016-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-22T14:40:44.016-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="has_many" /><category scheme="http://www.blogger.com/atom/ns#" term="belongs_to" /><category scheme="http://www.blogger.com/atom/ns#" term="rails" /><category scheme="http://www.blogger.com/atom/ns#" term="relacionamento" /><category scheme="http://www.blogger.com/atom/ns#" term="combo" /><category scheme="http://www.blogger.com/atom/ns#" term="filtros" /><title>Formulário com Combo</title><content type="html">&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana; "&gt;Dando continuidade nas aulas, vou mudar um pouco, ao invés de PowerPoint colocarei um post tradicional. A idéia desse post é mostrar como ajustar uma tela gerada pelo scaffold adicionando uma combobox.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style=" color: rgb(255, 102, 102); font-family:verdana;"&gt;Obs: O exemplo aqui serve somente para ensinar o uso de combobox, não se trata da regra de negócio que pretendo aplicar, pois na tela de cadastro de memo vocês verão a combo de usuário, mas na realidade, o usuário vai ser pego da sessão.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Primeiro passo então é gerar o scaffold para memo (visto em aulas passadas).&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Sabemos que um usuário pode ter zero ou mais memos e um memo só pode ter um usuário, então temos uma relação zero para muitos. Para refletir essa relação, altere os models User e Memo conforme imagem abaixo.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style=" ;font-family:Georgia, serif;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9MaQG9nUv0w/St-cBkGnz6I/AAAAAAAAAT0/Rex7xL-wna4/s1600-h/img01.jpg"&gt;&lt;img src="http://3.bp.blogspot.com/_9MaQG9nUv0w/St-cBkGnz6I/AAAAAAAAAT0/Rex7xL-wna4/s400/img01.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5395202429298397090" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 243px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;div style="text-align: justify;"&gt;Como memo se relaciona com usuário, sua tela de cadastro (&lt;span class="Apple-style-span"  style="color:#FF6666;"&gt;view new&lt;/span&gt;) deve ter uma combo com os usuários disponíveis para seleção.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style=" ;font-family:Georgia, serif;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_9MaQG9nUv0w/St-crUErmLI/AAAAAAAAAT8/QPNo7HJhnJA/s1600-h/img02.jpg" style="text-decoration: none;"&gt;&lt;img src="http://2.bp.blogspot.com/_9MaQG9nUv0w/St-crUErmLI/AAAAAAAAAT8/QPNo7HJhnJA/s400/img02.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5395203146549794994" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 268px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Agora abra o código fonte da view new do controller memo, no meu caso (c:\agenda\app\views\memos\new.html.erb). Veja que onde tem &lt;span class="Apple-style-span"  style="color:#FF6666;"&gt;&lt;/span&gt; trocamos por &lt;span class="Apple-style-span"  style="color:#FF6666;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#FF6666;"&gt;&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; font-family:Georgia, serif;"&gt;&lt;img src="http://3.bp.blogspot.com/_9MaQG9nUv0w/St-enKgVxCI/AAAAAAAAAUE/eooYw7awspg/s400/img03.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5395205274285229090" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 198px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"   style="font-family:Georgia, serif;color:#0000EE;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;O método helper&lt;span class="Apple-style-span"  style="color:#FF6666;"&gt; &lt;/span&gt;f.select é o responsável em criar uma caixa de seleção e recebe os parâmetros:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;:user_id – é o nome do campo na tabela memo&lt;/div&gt;&lt;div style="text-align: justify;"&gt;@users – hash que é retornado pelo controller *veremos abaixo&lt;/div&gt;&lt;div style="text-align: justify;"&gt;:prompt=&gt;”texto” – texto que aparece na combo&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Agora abra o memos_controller.rb e adicione um filtro que chama o método loadUsers antes dos métodos new, edit, create e update. Altere também o método index colocando o include no Memo.all, isso fará que o método carregue somente uma vez os usuários.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"   style="font-family:Georgia, serif;color:#0000EE;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"   style="font-family:Georgia, serif;color:#0000EE;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_9MaQG9nUv0w/SuCYxCvj0KI/AAAAAAAAAUk/4AVXtEJOvyQ/s1600-h/img04.jpg"&gt;&lt;img src="http://2.bp.blogspot.com/_9MaQG9nUv0w/SuCYxCvj0KI/AAAAAAAAAUk/4AVXtEJOvyQ/s400/img04.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5395480321907216546" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 169px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"   style="font-family:Georgia, serif;color:#0000EE;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Adicione antes do último end o código do método loadUsers que retorna o objeto @users (lembra-se que usamos ele na view new para preencher a combo) que é uma hash de usuários. Cada objeto só tem os atributos login e id.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="color:#FF6666;"&gt;O método collect retorna um hash de todos os objetos retornados no método all.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; font-family:Georgia, serif;"&gt;&lt;img src="http://1.bp.blogspot.com/_9MaQG9nUv0w/St-gQbASkkI/AAAAAAAAAUU/XRJ1ADSjvp0/s400/img05.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5395207082600469058" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 92px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Ao submeter a página, sabemos que o sistema redirecionará para a view show (c:\agenda\app\views\memos\show.html.erb) , e nela devemos mostrar o nome do usuário, então basta ajustar o código conforme imagem abaixo. Repare que só alteramos a linha 7, onde tinha &lt;span class="Apple-style-span"  style="color:#FF6666;"&gt;@memo.user&lt;/span&gt; colocamos &lt;span class="Apple-style-span"  style="color:#FF6666;"&gt;@memo.user.login&lt;/span&gt;.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style=" color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; font-family:Georgia, serif;"&gt;&lt;img src="http://1.bp.blogspot.com/_9MaQG9nUv0w/St-hnpUduPI/AAAAAAAAAUc/5i3Tn3dag4M/s400/img06.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5395208581091801330" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 193px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"   style="font-family:Georgia, serif;color:#0000EE;"&gt;&lt;span class="Apple-style-span"  style="color: rgb(0, 0, 0);  font-family:verdana;"&gt;&lt;div style="text-align: justify; "&gt;Analogamente, você pode alterar a view index para que mostre também o nome do usuário na listagem que aparece.&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5165138530817586147-7603290192879866836?l=bahiaonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/BahiaOnRails/~4/gY5WP5LcFtw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bahiaonrails.blogspot.com/feeds/7603290192879866836/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://bahiaonrails.blogspot.com/2009/10/formulario-com-combo.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/7603290192879866836?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/7603290192879866836?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BahiaOnRails/~3/gY5WP5LcFtw/formulario-com-combo.html" title="Formulário com Combo" /><author><name>Luciano Borges</name><uri>http://www.blogger.com/profile/14731628279494264615</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_9MaQG9nUv0w/St-cBkGnz6I/AAAAAAAAAT0/Rex7xL-wna4/s72-c/img01.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://bahiaonrails.blogspot.com/2009/10/formulario-com-combo.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8FRXoyeSp7ImA9WxNXE04.&quot;"><id>tag:blogger.com,1999:blog-5165138530817586147.post-1198388469735186070</id><published>2009-09-30T15:18:00.001-03:00</published><updated>2009-09-30T15:20:14.491-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-30T15:20:14.491-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="rails" /><category scheme="http://www.blogger.com/atom/ns#" term="autenticação" /><category scheme="http://www.blogger.com/atom/ns#" term="authlogic" /><title>Autenticação no Rails</title><content type="html">&lt;iframe src="http://docs.google.com/present/embed?id=dgd4jfgj_497fv89wkdt" frameborder="0" width="410" height="342"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Para baixar os fontes clique &lt;a href="http://www.4shared.com/file/136573015/b7e8a109/sistema.html" target=_blank&gt;aqui.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5165138530817586147-1198388469735186070?l=bahiaonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/BahiaOnRails/~4/UnDJcx8-aTg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bahiaonrails.blogspot.com/feeds/1198388469735186070/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://bahiaonrails.blogspot.com/2009/09/autenticacao-no-rails.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/1198388469735186070?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/1198388469735186070?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BahiaOnRails/~3/UnDJcx8-aTg/autenticacao-no-rails.html" title="Autenticação no Rails" /><author><name>Luciano Borges</name><uri>http://www.blogger.com/profile/14731628279494264615</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://bahiaonrails.blogspot.com/2009/09/autenticacao-no-rails.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQFSH49eSp7ImA9WxNRGEw.&quot;"><id>tag:blogger.com,1999:blog-5165138530817586147.post-6488382068477196209</id><published>2009-09-13T00:21:00.003-03:00</published><updated>2009-09-13T00:25:19.061-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-13T00:25:19.061-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="livro" /><category scheme="http://www.blogger.com/atom/ns#" term="use" /><category scheme="http://www.blogger.com/atom/ns#" term="rails" /><category scheme="http://www.blogger.com/atom/ns#" term="cabeça" /><title>Livro: Use a Cabeça! Rails</title><content type="html">&lt;div style="text-align: justify;"&gt;A AltaBooks disponibiliza o primeiro capítulo do livro Use a Cabeça! Rails, acesso link &lt;a href="http://altabooks.tempsite.ws/capitulos_amostra/UC%20rails.pdf"&gt;http://altabooks.tempsite.ws/capitulos_amostra/UC%20rails.pdf&lt;/a&gt; e divirta-se!&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_9MaQG9nUv0w/Sqxl8XwpBAI/AAAAAAAAATU/O3yqJFfIdzg/s1600-h/useacabecarails.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 122px; height: 165px;" src="http://1.bp.blogspot.com/_9MaQG9nUv0w/Sqxl8XwpBAI/AAAAAAAAATU/O3yqJFfIdzg/s400/useacabecarails.gif" alt="" id="BLOGGER_PHOTO_ID_5380787742645486594" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5165138530817586147-6488382068477196209?l=bahiaonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/BahiaOnRails/~4/yNXLrQz-D3U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bahiaonrails.blogspot.com/feeds/6488382068477196209/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://bahiaonrails.blogspot.com/2009/09/livro-use-cabeca-rails.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/6488382068477196209?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/6488382068477196209?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BahiaOnRails/~3/yNXLrQz-D3U/livro-use-cabeca-rails.html" title="Livro: Use a Cabeça! Rails" /><author><name>Luciano Borges</name><uri>http://www.blogger.com/profile/14731628279494264615</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_9MaQG9nUv0w/Sqxl8XwpBAI/AAAAAAAAATU/O3yqJFfIdzg/s72-c/useacabecarails.gif" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://bahiaonrails.blogspot.com/2009/09/livro-use-cabeca-rails.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYFR3Y6eyp7ImA9WxNRGE0.&quot;"><id>tag:blogger.com,1999:blog-5165138530817586147.post-7854145997098620185</id><published>2009-09-11T00:01:00.002-03:00</published><updated>2009-09-12T22:41:56.813-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-12T22:41:56.813-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby" /><category scheme="http://www.blogger.com/atom/ns#" term="RoR" /><category scheme="http://www.blogger.com/atom/ns#" term="rails" /><title>Introdução ao Rails</title><content type="html">&lt;iframe src="http://docs.google.com/present/embed?id=dgd4jfgj_430fcgbdndg" frameborder="0" width="410" height="342"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5165138530817586147-7854145997098620185?l=bahiaonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/BahiaOnRails/~4/yxusvEt43NI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bahiaonrails.blogspot.com/feeds/7854145997098620185/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://bahiaonrails.blogspot.com/2009/09/introducao-ao-rails.html#comment-form" title="1 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/7854145997098620185?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/7854145997098620185?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BahiaOnRails/~3/yxusvEt43NI/introducao-ao-rails.html" title="Introdução ao Rails" /><author><name>Luciano Borges</name><uri>http://www.blogger.com/profile/14731628279494264615</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://bahiaonrails.blogspot.com/2009/09/introducao-ao-rails.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkADRn47fip7ImA9WxNREkU.&quot;"><id>tag:blogger.com,1999:blog-5165138530817586147.post-1623855308014790260</id><published>2009-09-06T20:43:00.002-03:00</published><updated>2009-09-06T20:46:17.006-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-06T20:46:17.006-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby" /><title>Introdução ao Ruby</title><content type="html">&lt;iframe src="http://docs.google.com/present/embed?id=dgd4jfgj_357d4srdz7h" frameborder="0" width="410" height="342"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Slides da aula de Introdução ao Ruby da disciplina Desenvolvimento Web com Banco de Dados da Faculdade Hélio Rocha.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5165138530817586147-1623855308014790260?l=bahiaonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/BahiaOnRails/~4/42qI88vgiTQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bahiaonrails.blogspot.com/feeds/1623855308014790260/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://bahiaonrails.blogspot.com/2009/09/introducao-ao-ruby.html#comment-form" title="2 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/1623855308014790260?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/1623855308014790260?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BahiaOnRails/~3/42qI88vgiTQ/introducao-ao-ruby.html" title="Introdução ao Ruby" /><author><name>Luciano Borges</name><uri>http://www.blogger.com/profile/14731628279494264615</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://bahiaonrails.blogspot.com/2009/09/introducao-ao-ruby.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YFQHk4eCp7ImA9WxJbFEk.&quot;"><id>tag:blogger.com,1999:blog-5165138530817586147.post-643020899190421420</id><published>2009-07-24T10:08:00.003-03:00</published><updated>2009-07-24T10:11:51.730-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-24T10:11:51.730-03:00</app:edited><title>Cursó Ágil na Prática</title><content type="html">&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.indexti.com/preinscricao.php"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 394px; height: 104px;" src="http://4.bp.blogspot.com/_9MaQG9nUv0w/SmmyU2TZ06I/AAAAAAAAASE/cI9r2uhUmQo/s400/banner.png" alt="" id="BLOGGER_PHOTO_ID_5362012902605312930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;A Index TI, empresa especializada em metodologias ágeis, oferece o curso “Ágil na Prática”, composto por aulas presenciais teóricas e práticas, demonstrando a aplicabilidade das metodologias de gerenciamento e desenvolvimento ágil Scrum e XP (Extreme Programming) utilizando o framework Ruby on Rails.&lt;br /&gt;&lt;br /&gt;Maiores informações clique &lt;a href="http://www.indexti.com/preinscricao.php"&gt;aqui&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5165138530817586147-643020899190421420?l=bahiaonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/BahiaOnRails/~4/xII166dQVX0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bahiaonrails.blogspot.com/feeds/643020899190421420/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://bahiaonrails.blogspot.com/2009/07/curso-agil-na-pratica.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/643020899190421420?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/643020899190421420?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BahiaOnRails/~3/xII166dQVX0/curso-agil-na-pratica.html" title="Cursó Ágil na Prática" /><author><name>Luciano Borges</name><uri>http://www.blogger.com/profile/14731628279494264615</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_9MaQG9nUv0w/SmmyU2TZ06I/AAAAAAAAASE/cI9r2uhUmQo/s72-c/banner.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://bahiaonrails.blogspot.com/2009/07/curso-agil-na-pratica.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08MRng7eyp7ImA9WxVaFU0.&quot;"><id>tag:blogger.com,1999:blog-5165138530817586147.post-6563631589057988258</id><published>2009-04-12T00:10:00.000-03:00</published><updated>2009-04-12T00:11:27.603-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-12T00:11:27.603-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby" /><category scheme="http://www.blogger.com/atom/ns#" term="crud" /><category scheme="http://www.blogger.com/atom/ns#" term="controller" /><category scheme="http://www.blogger.com/atom/ns#" term="rails" /><category scheme="http://www.blogger.com/atom/ns#" term="view" /><title>Curso de Ruby on Rails - parte 5</title><content type="html">&lt;iframe src='http://docs.google.com/EmbedSlideshow?docid=dgd4jfgj_2642rz86pgq' frameborder='0' width='410' height='342'&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5165138530817586147-6563631589057988258?l=bahiaonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/BahiaOnRails/~4/1XDQ_RPf4qQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bahiaonrails.blogspot.com/feeds/6563631589057988258/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://bahiaonrails.blogspot.com/2009/04/curso-de-ruby-on-rails-parte-5.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/6563631589057988258?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/6563631589057988258?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BahiaOnRails/~3/1XDQ_RPf4qQ/curso-de-ruby-on-rails-parte-5.html" title="Curso de Ruby on Rails - parte 5" /><author><name>Luciano Borges</name><uri>http://www.blogger.com/profile/14731628279494264615</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://bahiaonrails.blogspot.com/2009/04/curso-de-ruby-on-rails-parte-5.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EDSX4_fip7ImA9WxVUFUQ.&quot;"><id>tag:blogger.com,1999:blog-5165138530817586147.post-8084636384219367755</id><published>2009-03-20T21:32:00.001-03:00</published><updated>2009-03-20T21:34:38.046-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-20T21:34:38.046-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby" /><category scheme="http://www.blogger.com/atom/ns#" term="agilidade" /><category scheme="http://www.blogger.com/atom/ns#" term="maré" /><title>Maré de Agilidade</title><content type="html">Entre os dias 26.03 e 31.03 ocorrerá em Salvador a 2ª Edição do Evento Maré de Agilidade. &lt;br /&gt;&lt;br /&gt;http://www.maredeagilidade.com.br/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5165138530817586147-8084636384219367755?l=bahiaonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/BahiaOnRails/~4/OhcNvqlvx44" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bahiaonrails.blogspot.com/feeds/8084636384219367755/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://bahiaonrails.blogspot.com/2009/03/mare-de-agilidade.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/8084636384219367755?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/8084636384219367755?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BahiaOnRails/~3/OhcNvqlvx44/mare-de-agilidade.html" title="Maré de Agilidade" /><author><name>Luciano Borges</name><uri>http://www.blogger.com/profile/14731628279494264615</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://bahiaonrails.blogspot.com/2009/03/mare-de-agilidade.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQFQX48eip7ImA9WxVVF0w.&quot;"><id>tag:blogger.com,1999:blog-5165138530817586147.post-8988867316306985007</id><published>2009-03-10T16:44:00.000-03:00</published><updated>2009-03-10T16:45:10.072-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-10T16:45:10.072-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby" /><category scheme="http://www.blogger.com/atom/ns#" term="RoR" /><category scheme="http://www.blogger.com/atom/ns#" term="controller" /><category scheme="http://www.blogger.com/atom/ns#" term="rails" /><category scheme="http://www.blogger.com/atom/ns#" term="model" /><title>Curso de Ruby on Rails - parte 4</title><content type="html">&lt;iframe src='http://docs.google.com/EmbedSlideshow?docid=dgd4jfgj_227cj592bfb' frameborder='0' width='410' height='342'&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5165138530817586147-8988867316306985007?l=bahiaonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/BahiaOnRails/~4/NX9i2wLYep8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bahiaonrails.blogspot.com/feeds/8988867316306985007/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://bahiaonrails.blogspot.com/2009/03/curso-de-ruby-on-rails-parte-4.html#comment-form" title="1 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/8988867316306985007?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/8988867316306985007?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BahiaOnRails/~3/NX9i2wLYep8/curso-de-ruby-on-rails-parte-4.html" title="Curso de Ruby on Rails - parte 4" /><author><name>Luciano Borges</name><uri>http://www.blogger.com/profile/14731628279494264615</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://bahiaonrails.blogspot.com/2009/03/curso-de-ruby-on-rails-parte-4.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEMQn05fyp7ImA9WxVWE0s.&quot;"><id>tag:blogger.com,1999:blog-5165138530817586147.post-8692052164597519838</id><published>2009-02-23T01:17:00.000-03:00</published><updated>2009-02-23T01:18:03.327-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-23T01:18:03.327-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby" /><category scheme="http://www.blogger.com/atom/ns#" term="RoR" /><category scheme="http://www.blogger.com/atom/ns#" term="rails" /><category scheme="http://www.blogger.com/atom/ns#" term="model" /><category scheme="http://www.blogger.com/atom/ns#" term="generator" /><title>Curso de Ruby on Rails - parte 3</title><content type="html">&lt;iframe src='http://docs.google.com/EmbedSlideshow?docid=dgd4jfgj_200d55dmm6x' frameborder='0' width='410' height='342'&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5165138530817586147-8692052164597519838?l=bahiaonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/BahiaOnRails/~4/9yCzGPTiVDE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bahiaonrails.blogspot.com/feeds/8692052164597519838/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://bahiaonrails.blogspot.com/2009/02/curso-de-ruby-on-rails-parte-3.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/8692052164597519838?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/8692052164597519838?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BahiaOnRails/~3/9yCzGPTiVDE/curso-de-ruby-on-rails-parte-3.html" title="Curso de Ruby on Rails - parte 3" /><author><name>Luciano Borges</name><uri>http://www.blogger.com/profile/14731628279494264615</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://bahiaonrails.blogspot.com/2009/02/curso-de-ruby-on-rails-parte-3.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MDSX8zcSp7ImA9WxVXF04.&quot;"><id>tag:blogger.com,1999:blog-5165138530817586147.post-934251135342749728</id><published>2009-02-15T17:54:00.000-03:00</published><updated>2009-02-15T17:57:58.189-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-15T17:57:58.189-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby" /><category scheme="http://www.blogger.com/atom/ns#" term="RoR" /><category scheme="http://www.blogger.com/atom/ns#" term="rails" /><title>Curso de Ruby on Rails - parte 2</title><content type="html">&lt;iframe src='http://docs.google.com/EmbedSlideshow?docid=dgd4jfgj_179gzpwbv6n' frameborder='0' width='410' height='342'&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5165138530817586147-934251135342749728?l=bahiaonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/BahiaOnRails/~4/yA2e-0bq3NQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bahiaonrails.blogspot.com/feeds/934251135342749728/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://bahiaonrails.blogspot.com/2009/02/curso-de-ruby-on-rails-parte-2.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/934251135342749728?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/934251135342749728?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BahiaOnRails/~3/yA2e-0bq3NQ/curso-de-ruby-on-rails-parte-2.html" title="Curso de Ruby on Rails - parte 2" /><author><name>Luciano Borges</name><uri>http://www.blogger.com/profile/14731628279494264615</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://bahiaonrails.blogspot.com/2009/02/curso-de-ruby-on-rails-parte-2.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QNQno4fCp7ImA9WxVXF04.&quot;"><id>tag:blogger.com,1999:blog-5165138530817586147.post-3203040511460305208</id><published>2009-02-15T17:53:00.000-03:00</published><updated>2009-02-15T17:56:33.434-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-15T17:56:33.434-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby" /><category scheme="http://www.blogger.com/atom/ns#" term="RoR" /><category scheme="http://www.blogger.com/atom/ns#" term="rails" /><title>Curso de Ruby on Rails - parte 1</title><content type="html">&lt;iframe src='http://docs.google.com/EmbedSlideshow?docid=dgd4jfgj_137dps3s6g6' frameborder='0' width='410' height='342'&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5165138530817586147-3203040511460305208?l=bahiaonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/BahiaOnRails/~4/ApFkRM7fUu0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bahiaonrails.blogspot.com/feeds/3203040511460305208/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://bahiaonrails.blogspot.com/2009/02/curso-de-ruby-on-rails-parte-1.html#comment-form" title="1 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/3203040511460305208?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/3203040511460305208?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BahiaOnRails/~3/ApFkRM7fUu0/curso-de-ruby-on-rails-parte-1.html" title="Curso de Ruby on Rails - parte 1" /><author><name>Luciano Borges</name><uri>http://www.blogger.com/profile/14731628279494264615</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://bahiaonrails.blogspot.com/2009/02/curso-de-ruby-on-rails-parte-1.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UNQ3w-fyp7ImA9WxVXF04.&quot;"><id>tag:blogger.com,1999:blog-5165138530817586147.post-6827160201511927317</id><published>2009-02-15T17:45:00.000-03:00</published><updated>2009-02-15T17:54:52.257-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-15T17:54:52.257-03:00</app:edited><title>Boas vindas!</title><content type="html">&lt;div style="text-align: justify;"&gt;Caros leitores,&lt;br /&gt;&lt;br /&gt;Eu tenho um costume de fazer slides de tudo que eu esteja estudando. Como decidi estudar o Ruby On Rails esse ano, venho através desse blog disponibilizar esses slides.&lt;br /&gt;&lt;br /&gt;Caso eu tenha feito alguma referência a algum material e não tenha colocado, favor me enviem um e-mail para que possa fazer as devidas correções.&lt;br /&gt;&lt;br /&gt;Todo os slides que colocarei aqui podem ser distribuídos e modificados conforme necessidade de cada um, só peço que assim como eu cito as referências citem meu nome ou pelo menos o meu blog.&lt;br /&gt;&lt;br /&gt;Sejam bem vindos e qualquer ajuda, dica, indicação serão bem vindos.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5165138530817586147-6827160201511927317?l=bahiaonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/BahiaOnRails/~4/t-UWE9G-440" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://bahiaonrails.blogspot.com/feeds/6827160201511927317/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://bahiaonrails.blogspot.com/2009/02/boas-vindas.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/6827160201511927317?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5165138530817586147/posts/default/6827160201511927317?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BahiaOnRails/~3/t-UWE9G-440/boas-vindas.html" title="Boas vindas!" /><author><name>Luciano Borges</name><uri>http://www.blogger.com/profile/14731628279494264615</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://bahiaonrails.blogspot.com/2009/02/boas-vindas.html</feedburner:origLink></entry></feed>

