gmaps4rails:未捕获的ReferenceError:未定义Gmaps

时间:2013-05-27 04:35:55

标签: javascript ruby-on-rails gmaps4rails

我想通过Gmaps4Rails gem将地图包含到我的rails应用程序中(我使用Rails 3.2.11和资产管道)。按照https://github.com/apneadiving/ 上此宝石的设置说明,我有

  • 通过gem gmaps4rails
  • 将Gem文件中的gem包含在内
  • 使用gem rails generate gmaps4rails:install提供的生成器将资产复制到我的rails应用程序。执行此操作后,gmaps4rails.css文件夹中有app\assets\stylesheets,àpp\ assets \ javascripts \ gmaps4rails`文件夹中有5个coffeescripts
  • 通过<%= yield :scripts %>添加了Javascripts。附带问题:这个顺便说一下就足够了。关闭的主体和关闭的html标签,还是应该在Javascripts产生的地方使用页脚标签?

      ...
      </body>
      <%= yield :scripts %>
    </html>
    

模型,迁移等都已设置并且应该有效。 最后,在视图中,我呼叫<%= gmaps4rails(@json) %>

不幸的是,我收到了JavaScript错误Uncaught ReferenceError: Gmaps is not defined。以下屏幕截图显示了Chrome如何在gmaps4rails Javascripts中报告错误:

Chrome reporting a JavaScript error on gmaps4rails

结果是地图没有任何集中渲染;只有地图的CSS包装器,但没有任何内容。

我无法解决这个问题,所以我需要你的支持。

到目前为止我尝试过并注意到了:

  • 发生错误的脚本之前来自Google的两个Javascripts似乎是在加载最后一个Javascript之后动态加载的。我直接从源代码下载了JavaScripts,从中构建了本地文件,并将其包含在资产管道中,但是,这并没有解决问题。
  • 我假设Gmaps(无法引用)已在之前加载的库Javascripts中重命名。但是,由于我不知道这是如何工作的,我不能在这里跟进并检查它。

1 个答案:

答案 0 :(得分:1)

我发现我错过了将gmaps4rails Javascripts正确添加到资产管道中。

添加

    //= require_tree .

    //= require gmaps4rails/gmaps4rails.bing
    //= require gmaps4rails/gmaps4rails.googlemaps
    //= require gmaps4rails/gmaps4rails.mapquest
    //= require gmaps4rails/gmaps4rails.openlayers
    //= require gmaps4rails/gmaps4rails.base

到application.js会解决问题。

但是,因为我似乎忘了添加

    //= require_tree .

完全,我已将它添加到我的application.js中的最后一个包含。