2015-10-19 39 views
0

過這個問題早一點來到今天,任何人都知道可能什麼?我是api的新手。試着用搜索引擎,但沒有多少運氣迄今爲止..NoMethodError未定義的方法'編碼」的零:NilClass CGI.escape

錯誤:

NoMethodError in ArtistsController#index 
undefined method `encoding' for nil:NilClass 

問題行是:

response = HTTParty.get("https://api.spotify.com/v1/search?q=#{CGI.escape params[:query]}&type=artist") 

這讓我覺得這可能是與CGI.escape的問題。

如果我輸入以下URL,並在最後一切都已經是查詢工作正常: http://localhost:3000/search?utf8=%E2%9C%93&query=Caribou&commit=Search

但是,如果沒有我得到上述錯誤的查詢中輸入以下網址: http://localhost:3000/search

猜猜這解釋了零的一部分,但我不就沒怎麼突破這個..

認爲這就是我需要給這個問題,但讓我知道,如果需要更多的所有信息。

回答

0

如果params[:query]沒有定義,則CGI.escape正在接收零的說法。

確保params[:query]是在您引用它時定義的,和/或在僅按類型搜索時不調用CGI.escape,而不是按關鍵字搜索時調用CGI.escape。 (假設這是可能的 - 這就是上面的空搜索似乎暗示。)

+0

如何定義PARAMS [:查詢],這樣它會動態地等於什麼用戶實際輸入的搜索查詢?第一次這樣做。 – jlquaccia

相關問題