このhttp://www.exampleofurl.com/search?q=4&e=25;i=8&b=2の各パラメーターをループで変更しようとしていますが、この出力が得られます。
http://www.exampleofurl.com/search?q=changed&e=25;i=8&b=2
http://www.exampleofurl.com/search?q=4&e=changed;i=8&b=2
http://www.exampleofurl.com/search?q=4&e=25;i=changed&b=2
http://www.exampleofurl.com/search?q=4&e=changed5;i=8&b=changed
パラメータが空の場合、この奇妙な出力が得られます。
search?changedqchanged=changed4changed&changedechanged=changed2changed5changed;changedichanged=changed8changed&changedbchangedochangedochanged=changed
これが私のコードです。
require 'uri'
url = "http://www.exampleofurl.com/search?q=4&e=25;i=8&b=2"
uri = URI.parse(url)
params = {}
t = "changed"
q = uri.query
p = q.split(/[&;]/) if q != nil
p.each do |part|
k,v = part.split('=', 2)
params[k] = v
t.each do |tr|
uri.query = q.gsub(params[k], tr)
end
end
誰かが私に何が間違っているのか、そしてそれを行うための最も効率的な方法は何ですか?
このような出力が欲しいです。
q=changed&e=25;i=8&b=2
q=4&e=changed;i=8&b=2
q=4&e=25;i=changed&b=2
q=4&e=25;i=8&b=changed
前もって感謝します。
マルコ