我正在使用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