我正在使用gmaps4rails和geocoder gem来显示数据库中所有匹配的当前位置。这是控制器的代码。
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
当我尝试在视图中使用@hash
对象时,该对象为空。
<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>
以上是视图中的代码。地图显示空对象。浏览器控制台显示此错误未捕获的RangeError:超出最大调用堆栈大小。
当我从控制器打印时,对象不为空。 Here is the output from the server.
我是新人。感谢您的帮助。
答案 0 :(得分:0)
确保您没有传递nil
和marker.lat
的{{1}}值。同样基于此forum,“在您的json中,您应该将marker.lng
替换为longitude
,将lng
替换为latitude
。”查看相关的issue on GitHub。