Pierre :
> Bonjour à tous pour mon premier message sur cette liste,
> étant un nouvel utilisation

salut et bienvenue, mais tu seras le seul dans ce cas, car
ici il n'y a que des utilisateurs de Rails.

> (et déjà fan) de RoR.
>
> Je voudrais partager une méthode qui permet de convertir les accents
> en caractères correspondants non accentués.
> Je l'utilise pour générer des url propres en redéfinissant la méthode
> to_param
>
> Dois-je placer ce code pour l'utiliser partout dans Rails ?
>
> def self.normalize(str)
>      n = str.chars.downcase.strip.to_s
>      n.gsub!(/[àáâãäåāă]/,    'a')
>      n.gsub!(/æ/,            'ae')

[snip : pleins de #gsub! ]

Pour compléter les dires de mes colistiers, si tu prends
l'option non Iconv, il faut pour des raisons de performances,
que tu minimises les appels à String#gsub! en utilisant aussi
String#tr!

Ensuite 2 remarques :

class XX < ActiveRecord::Base
 def to_param
   "#{id}-#{nom.gsub(/[^a-z1-9]+/i, '-')}"
 end
end

1/ ça suppose que tous tes modèles AR::B possèdent
un attribut 'nom'

2/ Si le nom est une chaîne vide (voire le résultat de la
normalization donne une chaîne vide), tu peux obtenir
des trucs comme "395-"

   -- Jean-François.

-- 
Ruby ( http://www.rubyfrance.org ) on Rails ( http://www.railsfrance.org )

--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse [EMAIL PROTECTED]
-~----------~----~----~----~------~----~------~--~---

Répondre à