Carlos Brando

Nome do Jogo

Plugin para renomear rotas em português

Já faz um tempo que estou ensaiando um plugin, mas como quase tudo no Rails, um plugin só vale a pena quando é extraído de uma necessidade real. Foi isto que aconteceu ontem. Há alguns dias atrás eu mencionei aqui na série edge rails sobre uma alteração no sistema de rotas do Rails permitindo que incluíssemos uma opção :as no map.resources para dar um apelido ao modelo. Isto nos permitiria fazer algo assim:

map.resources :products, :as => 'produtos' do |product|
  product.resources :product_reviews, :as => 'comentarios'
end

E depois acessar usando a URL:

http://www.meusite.com/produtos/123/comentarios

Em nosso bom e velho português. O que é uma necessidade no caso de sistemas 100% brasileiros e com público alvo nacional. Seria meio estranho um sistema inteiro em português com URLs em inglês, além de dificultar para alguns usuários, e atrapalhar um pouco o SEO.

Eu estou envolvido em um projeto pessoal nas horas vagas (que aliás está demorando muito…. porque minhas horas vagas são poucas) onde eu precisava exatamente disto. Eu sei que na próxima versão do Rails teremos isto, mas eu não posso esperar, por isto acabei criando um plugin, que faz a mesma coisa, mas que pode ser usado nas versões atuais do Rails. Eu testei nas versãos 2.0.2 e 1.2.6 e tudo funciona tranquilamente.

Uma das vantagens de se usar este plugin é que ele contém exatamente o mesmo código do edge rails, então se no futuro você migrar para a versão 2.x.x do Rails, você poderá remover o plugin e suas rotas continuarão funcionando normalmente.

Se você tem um software nas versões mais antigas do Rails, como a 1.2.6, por exemplo, você também pode usar o plugin, sem precisar migrar para o Rails 2.0.

O plugin contém uma boa suíte de testes. Ao todo são 49 testes com 3068 assertions, que cobrem todo tipo de teste envolvendo rotas. Se você estiver usando uma versão diferente da 2.0.2 e 1.2.6 eu peço que rode os teste executando o comando abaixo para se certificar de que tudo irá funcionar na sua versão também:

rake test:plugins

E finalmente, para instalar o plugin basta executar o seguinte comando de dentro da sua aplicação Rails:

./script/plugin install http://plugins.nomedojogo.com/custom_resource_name

O comando acima é tudo em uma linha só do terminal. Qualquer dúvida ou problema podem entrar em contato comigo pelo formulário de contato ou deixar o seu comentário neste post.

Comments