Я пытаюсь создать простое добавление, используя гем Open Weather API, где пользователь может нажать кнопку, и отображается текущая погода в их местоположении. Я хотел бы использовать API геолокации HTML5 для возврата координат текущего местоположения пользователя и использовать их для извлечения данных из API Open Weather. Как передать значения latitude
и longitude
из моего JS в мой контроллер или класс обслуживания? На данный момент у меня есть этот код:
locations.js
var x = document.getElementById("demo");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
x.innerHTML = "Latitude: " + position.coords.latitude +
"<br>Longitude: " + position.coords.longitude;
}
услуги / open_weather_api.rb
class OpenWeatherApi
require 'open_weather'
def initialize(lat, lon, units, appid = "abcdef123456")
@options = { units: "metric", APPID: appid }
@lat = lat
@lon = lon
end
def my_location_forecast
OpenWeather::Current.geocode(@lat, @lon, @options)
end
end
forecast_controller.rb
class ForecastsController < ApplicationController
def current_weather
@forecast = OpenWeatherApi.new(@lat, @lon, @options).my_location_forecast
end
end
current_weather.html.erb
<p>Forecast: <%= @forecast['weather'][0]['description']%></p>