2015-10-19 1 views
0

столкнулся с этой проблемой немного раньше сегодня, кто-нибудь знает, что может быть? Я новичок с апи. Пытался погуглить, но не так много удачи до сих пор ..NoMethodError undefined метод `encoding 'для nil: 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

Однако, если ввести следующий URL без запроса я получаю ошибку, упомянутой выше: http://localhost:3000/search

Угадайте, что объясняет ноль, но я не знаю, как пройти мимо этого.

Думайте, что это вся информация, которую мне нужно дать для этой проблемы, но дайте мне знать, если потребуется больше.

ответ

0

Если params[:query] не определен, то CGI.escape получает ноль.

Убедитесь, что params[:query] определен, если вы ссылаетесь на него, и/или не вызываете CGI.escape при поиске только по типу, а не по ключевому слову. (Предполагая, что это возможно - вот что подразумевает пустой поиск выше.)

+0

Как определить params [: query], чтобы он динамически соответствовал тому, что пользователь действительно вводит для поискового запроса? Первый раз это делал. – jlquaccia

Смежные вопросы