Aide pour la suppression des caractères illégaux?

voix
2

J'utilise une chaîne d'entrée utilisateur pour créer une URL et je ne veux que l'URL pour contenir des lettres minuscules et traits d'union

par exemple example.com/this-is-a-url

Dans mon modèle, je l'ai ajouté à ce jour:

  def to_param
      name.downcase.gsub( , -)
  end

Cela rend minuscule et un trait d'union. Comment puis-je supprimer tous les caractères illégaux, tels que « / $ £% & et ainsi de suite? Une expression régulière peut-être la réponse, mais il y a quelque chose construit à cet effet, déjà dans Rails?

Peut-être au lieu de faire ce qui précède, je créer une validation qui veille à ce que « nom » est seulement des espaces et des lettres? Y at-il quelque chose construit à cet effet?

Créé 17/08/2010 à 16:57
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
7

Vous pouvez utiliser de ActiveSupport parameterizeméthode:

def to_param
  name.parameterize
end
Créé 17/08/2010 à 17:07
source utilisateur

voix
1

Vous pourriez envisager le to_slugplug - in pour cela. Voir aussi cette question connexe .

Créé 17/08/2010 à 17:05
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more