我想将一些查询参数传递给HTTParty.get
。我有一个帮助方法来处理请求
def handle_request
begin
response = yield
if response['Success']
response['Payload']
else
raise Bondora::Error::ApiError, "#{response['Errors'][0]['Code']}: #{response['Errors'][0]['Message']}"
end
rescue Net::OpenTimeout, Net::ReadTimeout
{}
end
end
另一种提出请求的方法:
def investments(*params)
handle_request do
url = '/account/investments'
self.class.get(url, :query => params)
end
end
当我将此方法称为investments({"User" => "test"})
时,我应该向/account/investments?User=test
发送GET请求。
不幸的是,请求参数没有被正确解析,结果请求如下所示:/account/balance?[{%22User%22=%3E%22test%22}]
有什么理由发生这种情况?我认为这与我写的方法有关。
答案 0 :(得分:1)
当您将方法声明为def investments(*params)
时,params
将包含数组参数,并希望将哈希传递给您的{ {1}}致电。因此,要么删除星号,只需说出get
,或稍后在方法中使用def investments(params)
。