47 votes

équivalent de l'encodage url dans ruby on rails

Existe-t-il un équivalent de l'urlencode de PHP dans Ruby on Rails 2.3.5 ? (Il encode une chaîne à utiliser dans la partie requête d'une URL). J'ai fait une recherche sur Google, mais toutes les réponses semblent dater d'avant 2006 et semblent indiquer des dates. Voici ce que j'ai trouvé . Il semble un peu anormal d'appeler CGI::escape dans une vue.

Existe-t-il une fonction d'aide équivalente ?

Merci !

97voto

Mike Trpcic Points 12741

Je crois que le u est ce que vous recherchez :

<%=u "URL ENCODE <p>ME</p>" %>

Je n'arrive pas à trouver la documentation de cette méthode, mais si je la trouve dans un avenir proche, je ne manquerai pas de mettre un lien ici.

Edit : Vous pouvez trouver la documentation pour cette méthode ici .

62voto

Sam Soffes Points 8034

Si vous voulez le faire sans ERB, vous pouvez utiliser ce qui suit :

Rack::Utils.escape('http://example.com')
#=> "http%3A%2F%2Fexample.com"

39voto

yorch Points 1912

Cela a mieux fonctionné pour moi que le Rack::Utils.escape :

URI::escape('http://example.com/?param=Hello World')

Parce qu'il a remplacé les espaces par %20 au lieu de +

8voto

webdevguy Points 479

ERB::Util.html_escape qui est aliasé en h et ERB::Util.url_encode qui est aliasé en u .

http://ruby-doc.org/stdlib-1.9.3/libdoc/erb/rdoc/ERB/Util.html

Les noms des méthodes semblent avoir changé depuis la réponse de Sam Soffes, mais pas les alias.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X