Ok, il s’agit de mon site de recettes de cuisine, je suis en rails
1.2.6 et jusqu’à présent j’utilise permalink_fu pour générer une URL
“parlante”. Mais maintenant je trouve que c’est un peu lourd
d’utiliser ce plugin et en plus il ne sait pas transformer des accents
en lettre non accentué, donc j’ai décidé d’écrire une methode qui
génère une chaine de caractère remplaçant les accents. J’ai mis cette
méthode dans application.rb car je compte aussi l’utiliser pour les
Nouvelles que je publie. Voilà le code de la méthode
def remove_accents_and_blanks( str )
str_temp = str.clone
accents = { [‘á’,‘à’,‘â’,‘ä’,‘ã’,‘Ã’,‘Ä’,‘Â’,‘À’] => ‘a’,
[‘é’,‘è’,‘ê’,‘ë’,‘Ë’,‘É’,‘È’,‘Ê’] => ‘e’,
[‘í’,‘ì’,‘î’,‘ï’,‘I’,‘Î’,‘Ì’] => ‘i’,
[‘ó’,‘ò’,‘ô’,‘ö’,‘õ’,‘Õ’,‘Ö’,‘Ô’,‘Ò’] => ‘o’,
[‘œ’] => ‘oe’,
[‘ß’] => ‘ss’,
[‘ú’,‘ù’,‘û’,‘ü’,‘U’,‘Û’,‘Ù’] => ‘u’,
[’ '] => ‘-’
}
accents.each do |ac,rep|
ac.each do |s|
str_temp.gsub!(s, rep)
end
end
return str_temp
end
Elle fonctionne correctement, ce n’est pas la solution la plus
performante mais elle n’est appelée que rarement.
Ensuite afin de mettre à jour ma base, je voulais écrire une tâche
rake qui me permette de remplacer l’actuel “permalink” dont les
caractères accentués sont absents par un “permalink” plus lisible.