2016-06-19 14 views
0

Ich würde gerne einige Abfrage Parameter an HTTParty.get übergeben. Ich habe eine Hilfsmethode auf Anfragen zu behandelnHttparty Anfrage Abfrage nicht richtig analysiert

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 

Und eine andere Methode, um die Anforderung zu machen:

def investments(*params) 
    handle_request do 
    url = '/account/investments' 
    self.class.get(url, :query => params) 
    end 
end 

Wenn ich diese Methode wie investments({"User" => "test"}) nenne ich soll mit einem GET-Request an /account/investments?User=test enden. Leider werden die Anfrageparameter nicht korrekt geparst und die resultierende Anfrage sieht so aus: /account/balance?[{%22User%22=%3E%22test%22}]

Irgendwelche Hinweise, warum das passiert? Ich denke, es hat etwas mit den Methoden zu tun, die ich geschrieben habe.

Antwort

1

Wenn Sie die Methode als def investments(*params) erklären, wird params enthalten eine Array von Argumenten, und wollen einen Hash zu Ihrem get Anruf zu übergeben. Also, lassen Sie entweder das Sternchen fallen und sagen Sie einfach def investments(params), oder verwenden Sie query: params.first später in der Methode.