Comment rendre une pièce d'identité conviviale insensible à la casse ?
-
12-12-2019 - |
Question
Comment puis-je répliquer les noms d'utilisateur Twitter dans une URL insensible :
Et que toutes ces URL ouvrent la page utilisateur lorsqu'il a enregistré son nom d'utilisateur sous "MY_Name" ou etc.
Et la méthode Model.find('my_NAmE') recherche l'enregistrement utilisateur nommé MY_Name.
La solution
La façon dont vous rendez la comparaison insensible à la casse consiste à normaliser la casse à la fois dans la base de données et dans l'entrée de recherche, de sorte que la recherche renvoie toujours le résultat, quel que soit le cas d'entrée.
Réduisez toujours les noms d'utilisateur avant de les enregistrer dans la base de données
Utiliser
Model.find(params[:id].to_s.downcase)
ou méthode personnalisée pour effectuer une recherche insensible à la casse
Te voilà.
Si vous ne souhaitez pas modifier la casse du nom d'utilisateur d'origine, ajoutez une deuxième colonne à la table user où vous stockez la version réduite.Effectuez ensuite la recherche sur ce champ au lieu du champ utilisateur d'origine.