Метод Gmaps4Rails Gmaps.triggerOldOnload не найден, ошибка javascript

Я использую удивительный гем gmaps4rails в проекте Rails. Он отлично работает на моем локальном компьютере, но после развертывания в стеке 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>

Заранее спасибо за просмотр!


person David    schedule 18.05.2012    source источник


Ответы (3)


Я предполагаю, что вы обновили драгоценный камень, но не перезапустили команду для копирования активов в свое приложение.

person apneadiving    schedule 19.05.2012
comment
Я сделал это, но это не решило проблему на Heroku. Я вижу, что есть более поздняя версия, чем та, что у меня есть, поэтому я собираюсь обновить ее до последней версии и попробовать все с нуля. Я опубликую результаты. - person David; 21.05.2012
comment
Хорошо, я обновил гем до последней версии и снова выполнил rails generate gmaps4rails:install. гем продолжает работать в моей среде разработки и продолжает выдавать ошибку javascript в рабочей среде, поскольку не может найти метод triggerOldOnload. Это действительно потрясающий драгоценный камень, и я недоумеваю, почему он генерирует эту ошибку в производстве. - person David; 21.05.2012
comment
Вы перекомпилировали свои активы? Боюсь, у вас где-то есть тайник. - person apneadiving; 21.05.2012
comment
Я сделал rake assets:precompile раз больше, чем считаю. Я удалил все файлы gmaps4rails и использовал установку rake, чтобы вернуть их обратно, а затем снова перекомпилировал. Я просто не могу понять это, и это сводит меня с ума! - person David; 21.05.2012
comment
мммм... у вас есть общедоступный URL, чтобы я мог проверить? - person apneadiving; 21.05.2012
comment
Я не знаю, будет ли это полезно или нет. JS, загруженный в мою локальную среду, - это window.onload = function() { Gmaps.loadMaps(); };, но js, загруженный в производственную среду, - это window.onload = function() { Gmaps.triggerOldOnload(); Gmaps.loadMaps(); }; - person David; 21.05.2012
comment
хорошо, так что в локальном у вас ‹1,5, а в prod у вас = 1,5. Вы действительно должны точно указать версии драгоценного камня в своем драгоценном файле. Это спасет вашу спину. - person apneadiving; 21.05.2012
comment
Большое спасибо за то, что указали мне правильное направление. Для других: я запустил gem update gmaps4rails и получил версию 1.5.2, а затем запустил rails generate gmaps4rails:install, чтобы убедиться, что у меня есть последние активы. Затем я обновил свой gemfile, чтобы он требовал ›= 1.5.2. Наконец, я все предварительно скомпилировал и загрузил в Heroku: все работает! Еще раз спасибо за всю вашу помощь и за вашу работу в его разработке. Это действительно фантастическая жемчужина! - person David; 22.05.2012

У меня была похожая проблема после обновления gmaps4rails.

Проблема заключалась в изменении имен файлов и структуры сгенерированных файлов js.

В приложении.js

Теперь есть gmaps4rails.base.js, который необходимо включить в комплект ресурсов. Вот где метод, который не может быть найден.

//= require gmaps4rails/gmaps4rails.base.js

также

//= require gmaps4rails/googlemaps.js

сейчас

//= require gmaps4rails/gmaps4rails.googlemaps.js
person Bob Firestone    schedule 01.07.2012

Ваш пробег может варьироваться — я не знаю, какую версию 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>
person sameers    schedule 05.12.2013