Url's amigáveis em Ruby on Rails com a gem Friendly_id – Código Fonte
Emerson Soares 19 de novembro de 2012
Nos últimos dias venho me aventurando pelo Framework Rails e tenho gostado muito principalmente pela maturidade do Framework e pela praticidade da linguagem Ruby, bem mas isso é assunto para outro post.
No decorrer do desenvolvimento de um site, senti a necessidade de gerar algumas URL's amigáveis, por padrão o Rails gera URL's nesse modelo: http://meusite/posts/1, ou seja, identificando um registro pelo seu Id na URL, vamos concordar que isso não é nem um pouco interessante nem para o usuário final e nem para os motores de busca, eu precisava de um resultado parecido com esse: http://meusite/um-exemplo-de-post, foi ai então que resolvi buscar um solução para isso.
Logo nos primeiros resultados percebi que muitos desenvolvedores tomam o caminho mais fácil para lidar com URL's amigáveis, eles usam o Id do registro seguido por um hífen e alguma sequencia de caracteres após o hífen geralmente algo como o titulo no caso de uma noticia ou post de blog, obtendo um resultado parecido com esse: http://meusite/posts/1322-um-exemplo-de-post.
Essa forma geralmente é utilizada com o método do Ruby to_i que basicamente converte uma string para um inteiro removendo quaisquer caracteres não numéricos. No controller teríamos algo assim:
#http://meusite/posts/1322-um-exemplo-de-post
Post.find(params[[:id]].to_i)
É uma solução pratica mas na minha opinião a url ainda não está tão amigável assim, veja que ainda existe o Id do post no inicio da url o que a torna difícil de memorizar, e deixa a url com um numero inútil para os motores de busca. Para resolver isso encontrei a gem friendly_id que faz esse trabalho de forma simples:
Em seu gemfile coloque o seguinte código:
bundle install rails g friendly_id rake db:migrate
Feito isso teremos a gem friendly_id instalada em nosso projeto, o próximo passo é adicionar o seguinte código ao model no qual você quer utilizar url's amigáveis:
E pronto! Agora é só rodar seu projeto e ver mágica. O friendly_id tem mais algumas configurações que podem ser encontradas na sua documentação no github.
FrameworkRuby on RailsSEOURLURL Amigável
22 anos, graduando em Sistemas de Informação, namorado da @rnataoliveira. Atualmente desenvolve software na W7BR, e participa do projeto Inprotec (Incubadora de Produtos de tecnologia) da FAAr. Tem experiência com as tecnologias .Net, PHP e Ruby, além de trabalhar com linguagens de frontend HTML, CSS, Javascript, enfim está em constante aprendizado. É preguiçoso e não gosta de fazer a mesma coisa repetitivamente, acredita que isso o torna um desenvolvedor melhor.
Ver todas as publicações de Emerson Soares
Amazon disponibiliza Adobe Photoshop Touch para Kindle Fire
Paolo Brancaglione 2014-03-29 at 11:25
Blz meu amigo nao entendi muito bem poderia me explicar como adiciono na minha pagina corretamente ? por exemplo tenho meu código
<a href="vernoticias.php?id&id=">Leia Mais
como fasso para minha noticia ir com o titulo tirando os acentos, pontos, espaços, maiusculo para minusculo essas coisas .