Bonjour à tous pour mon premier message sur cette liste, étant un
nouvel utilisation (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’)
n.gsub!(/[ÄÄ‘]/, ‘d’)
n.gsub!(/[çćÄĉċ]/, ‘c’)
n.gsub!(/[èéêëēęěĕė]/, ‘e’)
n.gsub!(/Æ’/, ‘f’)
n.gsub!(/[ÄÄŸÄ¡Ä£]/, ‘g’)
n.gsub!(/[ĥħ]/, ‘h’)
n.gsub!(/[ììÃîïīĩÄ]/, ‘i’)
n.gsub!(/[įıijĵ]/, ‘j’)
n.gsub!(/[ķĸ]/, ‘k’)
n.gsub!(/[łľĺļŀ]/, ‘l’)
n.gsub!(/[ñńňņʼnŋ]/, ‘n’)
n.gsub!(/[òóôõöøÅÅ‘ÅÅ]/, ‘o’)
n.gsub!(/OE/, ‘oe’)
n.gsub!(/Ä…/, ‘q’)
n.gsub!(/[ŕřŗ]/, ‘r’)
n.gsub!(/[śšşÅÈ™]/, ‘s’)
n.gsub!(/[ťţŧț]/, ‘t’)
n.gsub!(/[ùúûüūůűÅũų]/, ‘u’)
n.gsub!(/ŵ/, ‘w’)
n.gsub!(/[ýÿŷ]/, ‘y’)
n.gsub!(/[žżź]/, ‘z’)
n.gsub!(/\s+/, ’ ')
n.gsub!(/[^\sa-z0-9_-]/, ‘’)
n
end
Ensuite, je voudrais faire :
class XX < ActiveRecord::Base
def to_param
“#{id}-#{nom.gsub(/[^a-z1-9]+/i, ‘-’)}”
end
end
Merci par avance,
Cordialement,
Pierre.