Carlos Brando

Nome do Jogo

Rails 2.2: Inflector#parameterize simplifica a criação de URLs elegantes

Um novo inflector foi incluído no Rails, e particularmente acho este é muito útil. O parameterize transforma um texto qualquer em um formato ideal para o uso em URLs. Por exemplo:

class User
  def to_param
    "#{id}-#{name.parameterize}"
  end
end

@user = User.find(1)
# => #<User id: 1, name: "Carlos E. Brando">

link_to @user.name, user_path
# => <a href="/users/1-carlos-e-brando">Carlos E. Brando</a>

Um fato interessante é que logo de inicio a implementação feita não aceitava o uso de caracteres acentuados, o que significava um problema para muita gente ao redor do mundo, inclusive nós brasileiros. Um dia depois da primeira implementação, Michael Koziarski salvou nossas vidas incluindo este suporte. Mesmo assim o código ainda não estava perfeito, então decidiu-se adaptar o código do ótimo plugin slugalizer criado por Henrik Nyh. Agora sim, ficou perfeito!

Para aqueles que ainda não estão fazendo uso do Rails 2.2, o plugin slugalizer resolve o problema.


Todos os exemplos dados aqui funcionarão somente no Ruby on Rails 2.2 ou superior. Você pode encontrar mais detalhes sobre esta e outras novidades do Rails 2.2 no e-book “Ruby on Rails - O que há de novo?“.

Comments