0
我想通過一個循環來改變這個http://www.exampleofurl.com/search?q=4&e=25;i=8&b=2的每個參數,但我得到這個輸出。如何使用Ruby通過循環更改URL參數?
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
在此先感謝。
馬爾科
我不太清楚你想實現什麼,但是無論如何我沒有得到這段代碼來運行(Ruby 1.9),因爲字符串沒有提供每個iteratore(t.each do | tr | won沒有工作) – leifg