首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby URI:使用数组参数的"param[]=value“构建URI

Ruby URI:使用数组参数的"param[]=value“构建URI
EN

Stack Overflow用户
提问于 2021-02-21 19:46:41
回答 1查看 76关注 0票数 0

我正在尝试查询API (lichess API)。而且我无法正确考虑参数,因为URI没有按照数组参数的预期格式格式化URL。

预期的格式是:curl https://explorer.lichess.ovh/lichess?ratings[]=2200&ratings[]=2500。因此,ratings参数是一个值数组,并且url应该使用ratings[]=value

我现在像这样生成我的URI,as per the doc

代码语言:javascript
复制
base = "https://explorer.lichess.ovh/master"
params = {
  ratings: [1600, 1800]
}

uri = URI(base)
uri.query = URI.encode_www_form(params)

但这会生成这样的URL:https://explorer.lichess.ovh/master?ratings=1600&ratings=1800...这不是预期的格式,Lichess API无法理解。

Ruby是否提供了任何内置的方法来生成预期格式的参数,或者我是否需要手动构建URL (这感觉就像是在重新发明轮子)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-21 20:56:20

Rails/ActiveSupport有一个to_query方法,它可以做你想做的事情。

代码语言:javascript
复制
2.1.5 :010 > params.to_query
 => "ratings%5B%5D=1600&ratings%5B%5D=1800" 

另外,看看this comment,它解释了为什么URI.encode_www_form不返回方括号。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66301969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档