Ошибка описывает себя:
"cod":"400","message":"Nothing to geocode"
это означает, что вы не указали город в своем запросе. Одной из возможных причин этой ошибки является то, что вы переопределяете значение по умолчанию в вашем методе initialize
с помощью переменной @options
из контроллера в этой строке:
class ForecastsController < ApplicationController
def current_weather
@forecast = OpenWeatherApi.new(@options).my_location_forecast
end
end
Из предоставленной вами информации вы не определили переменную @options
в вашем контроллере или это nil
. Так что это переопределяет значение по умолчанию метода initialize
в OpenWeatherApi
.
Поскольку appid в вашем случае не изменится, изменится только название города, поэтому вы можете отправить его с контроллера.
def current_weather
@city = params[:city] // the city you want to send to API. Change it with your value
@forecast = OpenWeatherApi.new(@city).my_location_forecast
end