Подтвердить что ты не робот

Url кодирует эквивалент в рубине на рельсах

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

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

Спасибо!

4b9b3361

Ответ 1

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

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

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

Изменить: вы можете найти документацию для этого метода здесь.

Ответ 2

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

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

Ответ 3

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

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

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

Ответ 4

ERB::Util.html_escape, который сглаживается до h и ERB::Util.url_encode, который сглаживается до u.

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

Имена методов, похоже, изменились после ответа Сэма Соффеса, но псевдонимы не имеют.