我正在使用一个API,该API希望我以以下格式进行请求:
?filter=value1&filter=value2
但是,我使用的是Active Resource,当我指定:params哈希值时,无法使同一参数在URL中出现两次,我认为这是正确的。所以我不能这样做:
:params => {:consumer_id => self.id, :filter => "value1", :filter => "value2" }
,因为哈希的第二个过滤器索引将被忽略。我知道我可以像这样传递一个数组(我相信这是正确的方法):
:params => {:consumer_id => self.id, :filter => ["value1","value2"] }
这将产生如下URL:
?filter[]=value1&filter[]=value2
在我看来这没关系,但API不接受它。所以我的问题是:
传递带有多个值的参数的正确方法是什么?它是特定于语言的吗?谁来决定?
最佳答案
要创建有效的查询字符串,可以使用params = {a: 1, b: [1,2]}.to_query
http://apidock.com/rails/Hash/to_query
http://apidock.com/rails/Hash/to_param
关于ruby-on-rails - Rails-通过事件资源使用API时,URL中具有多个值的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9713382/