【发布时间】:2016-01-15 14:12:51
【问题描述】:
我似乎和这个小伙子here有同样的问题
我想编码一些参数(对于 import.io api)。有效:
params = {
:input => "webpage/url:http://www.example.com",
:input => "keywords:some+keywords"
}
但这行不通,所以我认为这是正确的方法:
params = { :input => ["webpage/url:http://www.example.com", "keywords:some+keywords"] }
我希望它输出
params.to_query
=> "input=webpage%2Furl%3Ahttp%3A%2F%2Fwww.example.com%2Fsome-id&input=keywords%3Asome%2Bkeywords"
不幸的是,我明白了
"input%5B%5D=webpage%2Furl%3Ahttp%3A%2F%2Fwww.example.com%2Fsome-id&input%5B%5D=keywords%3Asome%2Bkeywords"
它在输入之后添加 [],我认为这是标准行为。我怎样才能阻止它这样做?
为了澄清,处理需要重复键的 url 参数的 ruby 或“rails 方式”是什么?
【问题讨论】:
-
为什么要阻止它这样做?这是一个有效的查询参数
-
[]是在参数中处理数组的方式。如果您希望最终结果与开始参数相同,则需要那些 [] -
问题是我不能将它们都称为“输入”,因为哈希只会覆盖自己。我需要一种传递值的方法,两者都使用键“输入”到我将要传递到 URL 中的一组查询参数。
-
Anthony... 我确定是这样,但它破坏了 api。即 api 不会接受它作为有效参数。接受具有重复键的变量是非常高兴的。不是我的 API,所以除了遵守他们的规则之外,我无能为力....
-
是的,输入应该作为值的数组发送。这就是我们发送多个值的方式。如果您的 API 不接受它,那就太愚蠢了。你确定是这样吗?我们可以建议一些 hacky 变通方法,但对 API 一无所知就很难提出建议。
标签: ruby-on-rails ruby