Ich benutze Gmaps4rails und Geocoder Edelstein, um alle übereinstimmenden aktuellen Standort aus der Datenbank anzuzeigen. Dies ist der Code vom Controller.gmaps4rails - Controller-Objekt leer in Sicht
def map_view
@users = User.where(city: params[:city])
@hash = Gmaps4rails.build_markers(@users) do |user, marker|
marker.lat user.latitude
marker.lng user.longitude
end
respond_to do |format|
format.html
format.js
end
puts 'coordinates', @hash
end
Wenn ich versuche, das @hash
Objekt in der Ansicht zu verwenden, ist das Objekt null.
<script type="text/javascript">
handler = Gmaps.build('Google');
handler.buildMap({ provider: {}, internal: {id: 'map_location'}}, function(){
markers = handler.addMarkers(<%=raw @hash.to_json %>);
handler.bounds.extendWith(markers);
handler.fitMapToBounds();
});
</script>
Oben ist der Code in der Ansicht. Die Karte wird mit einem leeren Objekt angezeigt. Die Browserkonsole zeigt diesen Fehler an Uncaught RangeError: Maximale Aufrufstapelgröße wurde überschritten.
Wenn ich vom Controller aus drucke, ist das Objekt nicht null. Here is the output from the server.
Ich bin neu. Ich schätze Ihre Hilfe.
Die übergebenen Werte sind nicht "nil". Ich vermute, das Problem ist, nachdem der Wert in 'lat' und' long' übergeben wurde. – mbd