<?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>Direto e Fácil &#187; rails</title>
	<atom:link href="http://www.diretoefacil.com.br/tag/rails/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.diretoefacil.com.br</link>
	<description>Não tem que ser difícil.</description>
	<lastBuildDate>Sat, 13 Mar 2010 18:42:11 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Search + params + will_paginate</title>
		<link>http://www.diretoefacil.com.br/2008/10/26/search-params-will_paginate/</link>
		<comments>http://www.diretoefacil.com.br/2008/10/26/search-params-will_paginate/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 18:12:12 +0000</pubDate>
		<dc:creator>Márcio Gasparotto</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[ruby on rails]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[will_paginate]]></category>

		<guid isPermaLink="false">http://www.diretoefacil.com.br/?p=18</guid>
		<description><![CDATA[Depois que iniciei meu curso de ruby on rails na e-genial ministrado pelo Carlos Brando, tenho me dedicado ainda mais em conhecer e me aprofundar em rails, começar a fazer projetos realmente legais com a ferramenta e deixar de ser apenas mais um eterno iniciante ou um programador mediocre&#8230;.
Esses dias estava trabalhando em um projeto [...]]]></description>
			<content:encoded><![CDATA[<p>Depois que iniciei meu curso de ruby on rails na e-genial ministrado pelo <a href="http://www.nomedojogo.com/" target="_blank">Carlos Brando</a>, tenho me dedicado ainda mais em conhecer e me aprofundar em rails, começar a fazer projetos realmente legais com a ferramenta e deixar de ser apenas mais um eterno iniciante ou um programador mediocre&#8230;.</p>
<p>Esses dias estava trabalhando em um projeto pessoal, em rails é claro&#8230;rs, e precisei implantar uma busca no meu sistema, algo trivial, mas ai fui incrementar, paginar os resultados no estilo dig, etc&#8230; Nesse ponto tive alguns problemas com as rotas e na passagem de parâmetros, ai resolvi fazer esse mini tutorial de como resolvi o problema.</p>
<p>Se alguem conhecer uma solução melhor comenta ai.</p>
<p>Bem, vamos lá&#8230; Para paginar registros eu já estava usando o <a title="Will Paginate" href="http://github.com/mislav/will_paginate/tree/master" target="_blank">will_paginate</a>, e minha solução ficou da seguinte maneira:</p>
<p>No meu controller (categorias_controller.rb) eu adicionei o seguinte metodo:</p>
<p><script src="http://gist.github.com/19916.js"></script></p>
<p>Como estava implantando o formulário de busca em uma tela já pronta e iria repetir esse form em vários lugares, criei um partial para o formulário da busca (_busca.html.erb).</p>
<p><script src="http://gist.github.com/19917.js"></script></p>
<p>A view (busca.html.erb) que apresenta os resultados ficou da seguinte maneira:</p>
<p><script src="http://gist.github.com/19919.js"></script></p>
<p>Observem a linha 26, quando chamo o will_paginate preciso passar como parâmetro a variável query que contem a expressão que esta sendo buscada:</p>
<p><script src="http://gist.github.com/19922.js"></script></p>
<p>No meu arquivo routes.rb eu adicionei uma collection no resouce categorias.</p>
<p><script src="http://gist.github.com/19923.js"></script></p>
<p>Veja que adicionei a :busca como sendo mais um resource de :categorias, o parametro :any significa que esse resource responderá  :get/:post/:put/:delete, eu poderia simplesmente colocar :get, uma vez que o parâmetro nesse caso só é passado via url, mas deixei como :any pra exemplificar.</p>
<p>Ou coisa, pra não precisar ficar definindo os labels do will_paginate em todo os lugares, acrescentei no final(depois do ultimo end) do meu arquivo environment.rb as seguintes linhas:</p>
<p><script src="http://gist.github.com/19924.js"></script></p>
<p>Ai foi só reiniciar o server e partir pro abraço!</p>
<p>Abraço a todos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.diretoefacil.com.br/2008/10/26/search-params-will_paginate/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
