Tom*_*ond 1 ruby ruby-on-rails
假设我有一个字符串:
url = "https://example.com/user/tr_auth.php?key=34432&cmp_id=344&tr_id={user_id}"
Run Code Online (Sandbox Code Playgroud)
我想更新cmp_id=344要说的cmp_id=44553.实现这一目标的最佳方法是什么?我不能gsub per say因为我不知道cmp_id可能是什么,只是它将是字符串中的URL参数.
好像我想做点什么
uri = URI.parse(url)
params = CGI.parse(uri.query)
Run Code Online (Sandbox Code Playgroud)
但是,如何重新构建字符串交换cmp_id参数44553?
谢谢!
Sim*_*tti 15
如果您正在处理Web应用程序(和/或标签似乎表明的Rails),那么您当然可以使用Rack.Rack::Utils有解析和构建查询的方法.
url = "https://example.com/user/tr_auth.php?key=34432&cmp_id=344&tr_id={user_id}"
uri = URI.parse(url)
query = Rack::Utils.parse_query(uri.query)
# => {"key"=>"34432", "cmp_id"=>"344", "tr_id"=>"{user_id}"}
# Replace the value
query["cmp_id"] = 44553
uri.query = Rack::Utils.build_query(query)
uri.to_s
# => "https://example.com/user/tr_auth.php?key=34432&cmp_id=44553&tr_id=%7Buser_id%7D"
Run Code Online (Sandbox Code Playgroud)
另请注意,默认情况下,Rack会转义查询.
| 归档时间: |
|
| 查看次数: |
2109 次 |
| 最近记录: |