Я ищу удобный и функциональный способ добавления закодированных значений в строку запроса URL-адреса в Ruby. В настоящее время у меня есть:Как добавить значения кодированного запроса в URL?
require 'open-uri'
u = URI::HTTP.new("http", nil, "mydomain.example", nil, nil, "/tv", nil, "show=" + URI::encode("Rosie & Jim"), nil)
p u.to_s # => "http://mydomain.example/tv?show=Rosie%20&%20Jim"
Это не то, что я ищу, потому что мне нужно, чтобы получить "http://mydomain.example/tv?show=Rosie%20%26%20Jim"
, так что значение show=
не обрезается.
Есть ли Open :: URI есть другой метод, который бы сделал это? Если нет, можно ли это сделать с любым другим стандартным Ruby или gem?
Вы можете захотеть взглянуть на [Адресный] (http://addressable.rubyforge.org/api/) камень. Это все URI Ruby's, и многое другое. Очень рекомендуется для чего-либо, кроме простой обработки URL-адресов. –