У меня та же проблема, что и у @persistence
, и я предпочитаю сообщить об этом в этой теме. Сначала я пытался следовать как примеру вики, а затем придерживался комментария @apneadiving
и следовал вашей сути, но все же я что-то упускаю из сути. Я помещаю этот код в свой контроллер:
Контроллер_событий
def index
@json = Event.all.to_gmaps4rails do |event, marker|
marker.title event.title
marker.infowindow event.description
marker.sidebar 'This is a side bar'
end
p @json
respond_with @json
end
И, на мой взгляд, я вставляю точный код сути. Когда я нажимаю кнопку загрузки, я проверяю в консоли, что моя информация json в порядке, но карта не загружается из-за ошибки Javascript:
TypeError: Gmaps.map is undefined
Я предполагаю, что мне не хватает какой-то Javascript-инициализации карты?
ОБНОВЛЕНО 11.05.2012:
Это действительно была проблема. Объединив javascript из примера gist и wiki, я сделал эту работу, поместив следующий код в представление:
просмотр_индекса
<!-- create html + load js files but don't create map itself: will be done after ajax call -->
<%= gmaps({:last_map => false}) %>
<br/>
<!-- button to trigger ajax call -->
<button type="button" id="ajax">Load Map</button>
<script type="text/javascript" charset="utf-8">
$(function() {
//hide the empty container
$(".map_container").hide();
// Map initialization
Gmaps.map = new Gmaps4RailsGoogle();
Gmaps.load_map = function() {
Gmaps.map.map_options.maxZoom = 15;
Gmaps.map.initialize();
Gmaps.map.create_markers();
Gmaps.map.adjustMapToBounds();
Gmaps.map.callback();
};
$("#ajax").click(function(){
$.getJSON('/events', function(json){
$(".map_container").show();
Gmaps.loadMaps();
Gmaps.map.addMarkers(json);
})
})
});
</script>
Я также оставил несколько простых примеров загрузки карт Gmaps4Rails в GitHub: https://github.com/daviddefco/Gmaps4RailsSamples.git
- Использование и частичный HTML
- Использование запроса AJAX, вызванного кнопкой HTML (основной пример)
- Использование запроса AJAX внутри действия Javascript (пример из вики)
Я новичок в RoR и Javascript, поэтому комментарии или улучшения кода приветствуются.
person
davidfm
schedule
31.10.2012