2013-05-26 15 views
8

Konfiguruję aplikację, która może tworzyć żądania API LastFM. Są to proste żądania pobierania i używam klejnotu HTTParty.Parametr opcji HTTParty nie działa poprawnie

Moja funkcja jest następująca:

def get_albums 
    self.class.base_uri "http://ws.audioscrobbler.com/2.0/" 
    options = { 
    :user => "Gerard1992", 
    :method => "user.gettopalbums", 
    :api_key => Constants::LASTFM_API_KEY, 
    :format => "json" 
    } 
    puts options.to_query 
    self.class.get "/?#{options.to_query}", {} #options don't work 
end 

Ten fragment kodu, który jest pokazany powyżej prac. Żądanie get zwraca zestaw JSON. Mój problem polega na tym, że ten /?#{options.to_query} nie wygląda tak schludnie. I nie ma faktycznego (obecnie pustego {}) parametru opcji. Jak sprawić, by parametr opcji HTTParty działał tak, jak powinien?

To co próbowałem, ale w obu przypadkach nie powiodło się:

self.class.get "/", options 
self.class.get "/", options => options 

Doceniam pomoc.

Odpowiedz

22

odpowiednią opcję dla parametrów kwerendy w HTTParty jest :query, więc to, co chcesz:

self.class.get "/", query: options 

można zobaczyć wszystkie dostępne parametry w the docs.

+0

Uważam, że to dość dziwne. Również przełączyłem się z gemu HTTParty na klejnot Rest-client, ponieważ HTTParty używa "self.class", co nie jest tak zadbane. W każdym razie dziękuję za odpowiedź :) – Biketire

0

Wyślij: verify => false w hash opcji