2010-08-03 5 views
0

J'ai un problème simple que je voudrais entendre vos pensées:Crypter/Décrypter Chaîne

J'ai cette URL dans Rails http://example.com/hosts/show/somehost

Je reçois la partie « somehost » via params [ : id]. J'appelle URI.encode sur 'somehost' mais cela n'encode pas '.' personnages. Rails ne reconnaîtra pas les pièces d'identité avec des points, donc j'ai essayé de remplacer les points par '% 2E' - Cela fonctionne, mais Firefox (et d'autres navigateurs aussi) change le '% 2E' en points juste après la requête . Cela rend la copie & impossible et entraînera beaucoup de problèmes. Je souhaite crypter et décrypter la partie 'somehost' d'une manière sûre pour l'URL - Des suggestions? Je ne peux pas appeler par une clé primaire numérique à cause de l'architecture sous-jacente. I ont pour rechercher par nom.

Merci beaucoup à tous!

Répondre

2

Vous pouvez utiliser l'encodage base64, mais il serait préférable de résoudre le problème réel que vous rencontrez. Ce problème est décrit here. Vous devez définir une clé :requirements pour votre fichier de routes avec une regex qui inclut le point.