Eh bien, j'utilise normalement une méthode sur mesure pratique appelée String.to_slug
. J'espère que tu trouves cela utile.
Appelez /lib/to_slug.rb et incluez-le dans un initialiseur, ou incluez-le uniquement dans le modèle qui génère les URL.
String.class_eval do
#converts accented letters into ascii equivalents (eg. ñ becomes n)
def normalize
#this version is in the forums but didn't work for me
#chars.normalize(:kd).gsub!(/[^\x00-\x7F]/n,'').to_s
mb_chars.normalize(:d).gsub(/[^\x00-\x7F]/n,'').to_s
end
#returns an array of strings containing the words on a string
def words
gsub(/\W/, ' ').split
end
#convert into a nice url-ish string
def to_slug(separator='-')
strip.downcase.normalize.words.join(separator)
end
end
Expliquer pourquoi 'rack :: Utils.escape' est inacceptable peut aider les gens à donner de meilleures suggestions ... – ceejayoz
Il crée des URL laid. – brainfck
Selon vos commentaires ci-dessous et votre réponse acceptée, votre question est trompeuse. Vous ne voulez pas "encoder" des caractères spéciaux, mais plutôt les "convertir" en ascii. – ScottJ