2

我在 Rails 项目中使用了令人惊叹的 gem gmaps4rails。它在我的本地机器上工作得很好,但是一旦部署在 Heroku 的 Cedar 堆栈上,javascript 就会在 处引发错误window.onload = function() { Gmaps.triggerOldOnload(); Gmaps.loadMaps(); };,抱怨 triggerOldOnload 在 Gmaps 上不存在。同样,它在本地运行良好。

这是出现错误的整个脚本块:

<SCRIPT type="text/javascript" charset="utf-8">
Gmaps.map = new Gmaps4RailsGoogle();
Gmaps.load_map = function() {
Gmaps.map.map_options.auto_adjust = true;
Gmaps.map.initialize();
Gmaps.map.markers = [{"title":"Project 1","lat":18.71381,"lng":-72.35581},    {"title":"Project 2","lat":18.71567,"lng":-72.35603}];
Gmaps.map.markers_conf.do_clustering = true;
Gmaps.map.create_markers();
Gmaps.map.adjustMapToBounds();
Gmaps.map.callback();
};
Gmaps.oldOnload = window.onload;
 window.onload = function() { Gmaps.triggerOldOnload(); Gmaps.loadMaps(); };
</SCRIPT>

提前感谢您查看此内容!

4

3 回答 3

3

我猜你更新了 gem,但没有重新运行命令来复制应用程序中的资产。

于 2012-05-19T07:06:21.043 回答
2

升级 gmaps4rails 后我遇到了类似的问题。

问题是生成的 js 文件的文件名和结构发生了变化。

在 application.js 中

现在有一个 gmaps4rails.base.js 需要包含在捆绑的资产中。这就是找不到方法的地方。

//= require gmaps4rails/gmaps4rails.base.js

//= require gmaps4rails/googlemaps.js

就是现在

//= require gmaps4rails/gmaps4rails.googlemaps.js
于 2012-07-01T16:21:36.093 回答
0

您的里程可能会有所不同 - 我不知道您使用的是什么版本的 Rails 或 GMaps4Rails,但是当我遇到 Rails 3.2.16/Gmaps4Rails v2 的这个问题时(提交 52d7161409a060ddeabc87aa3c10049adc5edd4d,按照此处的说明,在添加地图部分Javascript

<script src="//maps.google.com/maps/api/js?v=3.13&sensor=false&libraries=geometry" type="text/javascript"></script>
<script src="//google-maps-utility-library-v3.googlecode.com/svn/tags/markerclustererplus/2.0.14/src/markerclusterer_packed.js" type="text/javascript"></script>
于 2013-12-05T19:45:41.773 回答