Я пытаюсь создать маркеры на карте, используя данные, хранящиеся в моей базе данных.На данный момент карта отображается, ошибок в консоли нет.Я предполагаю, что либо я не получаю доступ к данным правильно, либо JSON не отформатирован правильно.
В настоящее время не используются гемы для карт, Ruby 2.3.3, Rails 5.1.6, SQLite db
Когда я захожу к riders / json, он отображает массив со всеми данными моего гонщика.
Пытались несколько часов и искали, пробовали разные решения.Моя текущая настройка - та, которая не показывает ошибки и в терминале или при проверке.Я вижу запрос "GET" и "Rider Load SELECT" riders ". * FROM" riders "с ответом 200 в терминале.
Любая помощь будет признательна, или объяснение того, что я оставляюбыло бы здорово.
Ниже приведен файл _map.html.erb, где я генерирую карту, я вызываю его, используя <% = render ("layouts / map")%> на статической странице.
<script>
function initMap() {
var myLatLng = {lat: 40.014, lng: -105.270};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 12,
center: myLatLng
});
$.getJSON("/riders.json", function ( data ) {
$.each(data, function(key, data) {
var latLng = new google.maps.LatLng(data.lat, data.lng );
var marker = new google.maps.Marker({
position: latLng,
map: map
});
});
});
}
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?
key=AIzaSyAs2tWVlXznbp6ySamqYXot3sd7wNNLuXI&callback=initMap">
</script>
views / riders / index.json.jbuilder file:
json.array! @riders do |rider|
json.lat rider.latitude
json.lng rider.longitude
end
controllers / riders_controller:
class RidersController < ApplicationController
before_action :set_rider, only: [:show, :edit, :update, :destroy]
respond_to? :json #respond_to w/o ? threw an error
def index
@riders = Rider.all
render json: @riders
end
def show
@rider = Rider.where(id: params[:id])
respond_to do |format|
format.html
format.json { render json: @rider }
end
end
Это мой первый случай извлечения данных для использованияв API также приветствуются любые ссылки для дальнейшего чтения. Спасибо.