Url кодирует эквивалент в рубине на рельсах
Есть ли эквивалент PHP urlencode в Ruby on Rails 2.3.5? (Он кодирует строку, которая будет использоваться в части запроса URL-адреса)
Я googled это, но все ответы, кажется, датируются до 2006 года и, кажется, даты.
Это то, что я нашел. Кажется немного ненормальным называть CGI::escape
в представлении.
Существует ли эквивалентная вспомогательная функция?
Спасибо!
Ответы
Ответ 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
Имена методов, похоже, изменились после ответа Сэма Соффеса, но псевдонимы не имеют.