gmaps4rails - 控制器对象在视图中为空

时间:2016-05-16 19:04:00

标签: ruby-on-rails google-maps

我正在使用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.

我是新人。感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

确保您没有传递nilmarker.lat的{​​{1}}值。同样基于此forum“在您的json中,您应该将marker.lng替换为longitude,将lng替换为latitude。”查看相关的issue on GitHub