2015-04-07 86 views
0

我花了几个小时在StackOverflow上阅读解决方案,并尝试了所有内容,但仍未找到解决方案。gmaps4rails 2.4.6未捕获参考错误:Gmaps未定义

我越来越

unCaught Reference Error: Gmaps not defined

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> 

请帮忙!

+0

您是否尝试过重新启动服务器? –

+0

感谢您的评论。是的,我有 – Doddychris

+0

处理程序= Gmaps.build('Google'); ?handler.buildMap {{provider:{},internal:{id:'map'}},function(){ markers = handler.addMarkers([ { “lat”:0, “lng”:0 , “picture”:{ “url”:“https://addons.cdn.mozilla.net/img/uploads/addon_icons/13/13028-64.png”, “width”:36, “height “:36 }, “信息窗口”: “你好!” } ]); handler.bounds.extendWith(标记); handler.fitMapToBounds(); });' –

回答

0

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

有了这些知识,我们回到了堆栈溢出,并尝试改变ruby版本来解决这个问题。不幸的是,这并没有奏效。

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