如何在ruby中更改url参数的值?

如何在ruby中更改url参数的值?,ruby,Ruby,有什么更好的方法可以做到这一点 理想情况下,使用某种URI解析类,而不是依赖我自己的正则表达式 url=”http://example.com“//或”http://example.com?after=111" next_url=url.gsub(/after=\d+/,“666”) 如果!下一个url.eql?(url) if(new2.include?(“?”)==false) 下一个url=url+“?后=666” 其他的 下一个url=url+“&after=666” 结束 结束

有什么更好的方法可以做到这一点

理想情况下,使用某种URI解析类,而不是依赖我自己的正则表达式

url=”http://example.com“//或”http://example.com?after=111"
next_url=url.gsub(/after=\d+/,“666”)
如果!下一个url.eql?(url)
if(new2.include?(“?”)==false)
下一个url=url+“?后=666”
其他的
下一个url=url+“&after=666”
结束
结束                          
放入下一个url

不确定您的问题,但您可能想要这样的东西

path, query = url.split('?')
query = (query||'').scan(/(.+)=(.+)/).map{|k, v| "#{k}=#{k == 'after' ? 666 : v}"}.join('&')
puts [path, query].join('?')

有一个名为URI的Ruby库,用于解析和构建URL。

我建议在拆分或组合URL时使用gem。它非常全面,有
query\u值(options={})
query\u值=(new\u query\u值)
来将所有查询组件提取到哈希中,或者从哈希中重建它。它还将根据需要对参数进行解码和编码,这是URI不会为您做的事情