2016-06-19 70 views
0

我想将一些查询参数传递给HTTParty.get。我有一个辅助方法来处理请求Httpd请求查询未正确解析

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"})我应该用GET请求/account/investments?User=test结束。 不幸的是,请求参数没有正确解析,得到的请求如下所示:/account/balance?[{%22User%22=%3E%22test%22}]

任何线索为什么发生这种情况?我认为这与我写的方法有关。

回答

1

在声明方法def investments(*params)params将包含参数的阵列,并希望将哈希传递给您的通话get。因此,要么删除星号并简单地说def investments(params),要么稍后在方法中使用query: params.first