gmaps4rails 2.4.6 unCaught参考错误:未定义Gmaps

时间:2015-04-07 05:17:11

标签: javascript ruby-on-rails gmaps4rails

我花了几个小时在StackOverflow上阅读解决方案并尝试了所有方法,但我仍然没有找到解决方案。

我正在

  

unCaught参考错误:未定义Gmaps

handler = Gmaps.build('Google');

我已经多次重新安排我的脚本标签以尝试解决此问题。他们现在坐在我的'application.html.erb'布局中,看起来像这样:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">

  <!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame
  Remove this if you use the .htaccess -->
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

  <title>NomadSpaces</title>
  <meta name="description" content="">
  <meta name="author" content="Christopher Dodd">

  <meta name="viewport" content="width=device-width; initial-scale=1.0">

  <!-- Replace favicon.ico & apple-touch-icon.png in the root of your domain and delete these references -->
  <%= favicon_link_tag '/favicon.ico' %>
  <link rel="apple-touch-icon" href="/apple-touch-icon.png">

  <%= stylesheet_link_tag('application', :media => 'all') %>
  <%= stylesheet_link_tag('spaces', :media => 'all') %>

  <%= javascript_include_tag 'application', "data-turbolinks-track" => true %>
  <%= yield :javascripts %> // Code that calls Gmaps

  <%= javascript_include_tag 'gmaps_api.js' %>
  <%= javascript_include_tag 'markerclusterer_packed.js' %>


</head>

<body>

<%= yield %>

</body>
</html>

我的application.js文件如下所示:

    // This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the compiled file.
//
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
// GO AFTER THE REQUIRES BELOW.
//
//= require jquery
//= require jquery.ui.all
//= require jquery_ujs
//= require underscore
//= require gmaps/google
//= require bootstrap
//= require_tree .

详细的违规行为:

handler.buildMap({
            internal: {id: 'sidebar_builder'},
            provider: {
                zoom: 15,
                center:    new google.maps.LatLng(53.385873, -1.471471),
                mapTypeId: google.maps.MapTypeId.ROADMAP,
                styles:    mapStyle
            }
        }, function(){
            var json_array = <%=raw @hash.to_json %>;

            var markers = handler.addMarkers(json_array);

            _.each(json_array, function(json, index){
                json.marker = markers[index];
            });

            createSidebar(json_array);
            handler.bounds.extendWith(markers);
            handler.fitMapToBounds();
        });

地图应显示的空间:

<div class="row">

    <div id="map-area">
      <div id="sidebar_builder" class="visible"></div>
      <div class="ball"></div>
      <p class="loading">LOADING SPACES</p>
    </div>
    <div id='sidebar_container'></div>

  </div>

请帮忙!

1 个答案:

答案 0 :(得分:0)

我有一个朋友查看我的项目,发现错误的原因是application.js没有编译,因此gmaps javascript没有加载到页面上。

有了这些知识,我们回到Stack Overflow并尝试更改ruby版本来解决这个问题。不幸的是,这不起作用。

为了解决这个问题,我开始了一个新的rails项目,并从旧项目中复制了重要的代码。我的application.js文件现在正确加载,一切正常。