Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 谷歌地图的Rails替换标记不起作用_Ruby On Rails_Ruby On Rails 3_Maps_Gmaps4rails - Fatal编程技术网

Ruby on rails 谷歌地图的Rails替换标记不起作用

Ruby on rails 谷歌地图的Rails替换标记不起作用,ruby-on-rails,ruby-on-rails-3,maps,gmaps4rails,Ruby On Rails,Ruby On Rails 3,Maps,Gmaps4rails,我错过了什么明显的东西吗?Map一直在加载我在控制器中设置的@oldjson,当我在视图中设置它时,它不会被替换 查看代码: <% @json = Map.find_by_id('39').to_gmaps4rails %> <%= gmaps("markers" => {"data" => @oldjson, "options" => { "draggable" => true } } ) %> <script> Gmap

我错过了什么明显的东西吗?Map一直在加载我在控制器中设置的@oldjson,当我在视图中设置它时,它不会被替换

查看代码:

<% @json = Map.find_by_id('39').to_gmaps4rails %>
<%= gmaps("markers" => {"data" => @oldjson, "options" => { "draggable" => true } } ) %>
<script>    
  Gmaps.map.replaceMarkers(<%= @json %>);
</script>

谢谢。

我猜您在当前代码中遇到了js错误

原因如下:

gmaps4rails使用和创建的js放在yield:scripts中

因此,在创建映射之前,将调用此处的additionnal js

解决方案:

<% @json = Map.find_by_id('39').to_gmaps4rails %>
<%= gmaps("markers" => {"data" => @oldjson, "options" => { "draggable" => true } } ) %>
<% content_for :scripts do %>
 <script>    
  Gmaps.map.replaceMarkers(<%= @json %>);
  </script>
<% end %>

好的,这更有意义,因为gmaps4rails.googlemaps.js:280 uncaughttypeerror:cannotcallmethod'fitBounds'为null,所以得到了一个js错误。你知道是什么原因造成的吗?你有什么版本的gem?只是想:创建地图和它的标记需要异步时间。因此,您自己的代码仍然可以在映射本身准备就绪之前触发。这就是我创建回调方法的原因,在这个方法中,您可以安全地放置所需的任何内容。请看,普尔茨卡尔巴克博士做了这个把戏,以前也试过,但与allong一起,你的建议在上面起了作用。非常感谢。