URL кодировать эквивалент в рубине на рельсах - PullRequest
45 голосов
/ 01 марта 2010

Есть ли эквивалентный urlencode PHP в Ruby on Rails 2.3.5? (Кодирует строку для использования в части запроса URL-адреса) Я гуглил это, но все ответы, кажется, датируются до 2006 года и кажутся датами Это то, что я нашел . Кажется немного ненормальным для вызова CGI::escape в представлении.

Есть ли эквивалентная вспомогательная функция?

Спасибо!

Ответы [ 4 ]

96 голосов
/ 01 марта 2010

Я считаю, что вам нужен вспомогательный метод u:

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

Не могу найти документацию для этого метода, но если я найду его в ближайшем будущемЯ обязательно добавлю сюда ссылку.

Редактировать: документацию по этому методу можно найти здесь .

61 голосов
/ 09 июля 2012

Если вы хотите сделать это без ERB, вы можете использовать следующее:

Rack::Utils.escape('http://example.com')
#=> "http%3A%2F%2Fexample.com"
39 голосов
/ 11 ноября 2012

Это сработало для меня лучше, чем Rack::Utils.escape:

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

Поскольку он заменил пробелы на %20 вместо +

7 голосов
/ 23 октября 2013

ERB::Util.html_escape с псевдонимом h и ERB::Util.url_encode с псевдонимом u.

http://ruby -doc.org / STDLIB-1.9.3 / libdoc / ERB / ​​RDoc / ERB / ​​Util.html

Кажется, что имена методов изменились после ответа Сэма Соффса, но псевдонимы не изменились.

...