web-dev-qa-db-fra.com

url encoder équivalent en Ruby on rails

Existe-t-il un équivalent du code url de PHP dans Ruby on Rails 2.3.5? (Il code une chaîne à utiliser dans une partie requête d'une URL)) I googlé mais toutes les réponses semblent remonter à avant 2006 et semblent des dates. C'est ce que j'ai trouvé . Il semble un peu anormal d'appeler CGI::escape dans une vue.

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

Merci!

45
Yuval Karmi

Je crois que la méthode d'assistance 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 proche avenir, je suis sûr de mettre un lien ici.

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

96
Mike Trpcic

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

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

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 +

39
yorch

ERB::Util.html_escape, qui a pour alias h et ERB::Util.url_encode, qui a pour alias u.

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

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

7
webdevguy