PUBLICIDADE

Autor

emersonsoares

Emerson Soares

membro deste novembro de 2012

Enquete

Com que frequência você acessa o CódigoFonte.com.br?
PUBLICIDADE

segunda-feira, 19 de novembro de 2012

Url's amigáveis em Ruby on Rails com a gem Friendly_id


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:

gem "friendly_id", "~> 3.1"


Então execute os seguintes comandos:

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:

has_friendly_id :title, :use_slug => true


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.

ArquivoTipoTamanho 
Urls amigáveis em Ruby on Rails com a gem Friendly_id.txtArquivo TXT2,2 KbBaixar o Arquivo

Sim   Não   Este artigo foi útil para você?
NotaComentário
Ainda não foi enviado nenhum comentário.
Regras:
Os comentários seguem as seguintes regras:
  • Todos os comentários são enviados por membros cadastrados no site.
  • A pontuação de comentários de conteúdo do próprio membro não serão computados.
  • Os comentários serão pré-aprovados, porém a equipe do site revisará o conteúdo de todos os comentários podendo ser invalidados (inclusive a pontuação).
  • Os comentários precisam ter, obrigatóriamente, coerência sobre o conteúdo que será comentado.
  • O membro que atingir 5 comentários invalidados não poderá mais comentar dentro do site. Com isso o membro não poderá mais ganhar pontos com comentários.
  • Há um limite de 10 comentários por dia para cada membro.
  • Qualquer comentário após ter sido publicado poderá ser retirado através da opção ( denunciar)

Comente

     (ainda não tem cadastro? clique aqui!)


Máximo de 30 caracteres

Máximo de 255 caracteres
 

© 2006-2013 R&W Informática Ltda. - Todos os direitos reservados. - Política de Privacidade | Mapa do Site