Si j'ai ces paramètres pour ajouter à l'URL
et utilisez la méthode params = {nom: 'John Key'} code> p>
to_param Code>: P>
params.to_param
=> "name=John+Key"
6 Réponses :
Avez-vous essayé d'utiliser Le résultat dans cet exemple devrait être réalisé à partir d'un autre poste que URI.Escape est techniquement obsolète. Où uri code>? par exemple. p>
nécessite "Uri"
Uri.Escape ('John Smith')
code> p>
Jean% 20mith code> p>
h code> est syntonique de hachage et
k code> est la clé du hachage, essayez ceci: p>
params.keys.inject ({}) {| h, k | h [k] = erb :: util.url_encode (paramètres [k]); h} code> p>
Oui, cela fonctionne pour la valeur d'un param. Mais dans ce cas, je veux obtenir un groupe d'paramètres avec '% 20'. Comme_param méthode mais ne retourne pas les espaces blouses avec '+' Nom = John% 20Key code>
Je recommanderais simplement de rester à l'utilisation d'un pendant que vous pourriez em> résoudre le problème En utilisant la mise en œuvre de et donc, nous constatons que: p> donc, c'est pourquoi je ont référencé les différences entre gsub code>, peut-être avec un commentaire pour expliquer la nécessité d'un tel comportement.
uri.escape code>, il est censé être obsolète, car il n'est pas entièrement conforme aux spécifications RFC. voir ici pour une excellente radiation sur elle. p>
hachage # to_param code> est un alias de
hash # to_query code>, qui appelle
objet # to_query code>. L'exemple le plus simple pour démontrer ce
+ code> vs
% 20 code> est: p>
objet # to_query code> est: p>
cgi.escape code> et
uri.escape code>. p> p>
Que diriez-vous de
URI.encode 'John Smith' # => John%20Smith
Pas vraiment. p>
suggère d'utiliser: your_params_hash.to_query.gsub ("+", "% 20") code> p>
Élargir sur la réponse de Julie pour atteindre la chaîne de valeurs codées plutôt qu'à un hachage.
avec l'amortissement de uri.encode code> Il est possible d'y parvenir avec
erb :: util .url_encode code>, toutefois, vous devez coder uniquement la clé et la valeur des paires, et non le paramètre complet, puis joignez-les ensemble. p>
params.to_query
# => "Bad+Key=but+works&name=John+Key&occupation=Web+Developer%21"
Si vous voulez un pour cent littérale encodage d'une chaîne sans contexte (par exemple pour RFC 5987 encodage de quelque chose comme un Quelques commentaires sur cette suggèrent un ... source de bascule pour voir comment cela fonctionne - il est juste un codeur émoussé sans contexte. C'est exactement ce que vous voulez parfois em> quand vous savez ce que vous faites, alors espérons qu'il ne soit pas retiré de, ou dépréciée au sein de la bibliothèque standard. P>
Si je reçois le temps que je l'intention de soumettre un patch à la bibliothèque de base docs qui répertorie les trois em> (pas deux) alternatives possibles et donne plus d'informations lorsque vous utilisez chacun d'eux. En ce moment, il est clair du très grand nombre de Google frappe à ce sujet, et un grand nombre d'au-meilleures réponses trompeuses, que la communauté est dangereusement confus par le statu quo. P> Content-Disposition code> de tête HTTP
nom de fichier * = ... code> valeur) puis utilisez de
URI.escape code> /
URI .encode code> (son pseudonyme) aurait été correct. Les bibliothèque de base de la documentation le remplacement proposées ne sont pas fidèles em> dans ce cas, car ils ne sont pas équivalentes: p>
code> est converti en
+ code>, pas
% 20 code> li>
+ code> est converti en
% 2B code>, ne reste pas comme
+ code> li>
ul>
gsub code> pour pirater le dos de chaîne vers l'original, mais cela est beaucoup plus simple: p>
Vous avez mal interprété les réponses à la question liée. Dans Query i> Plus les signes sont parfaitement valables, traités comme des espaces et donc il n'existe donc pas d'assistant de rails redondants existant.
J'ai besoin des paramètres d'une URL de typeForm. Il ne traite pas bien le '+', mais cela fait avec '% 20'