2016-06-06 2 views
2

Я пытаюсь следовать этому tutorial для загрузки файла gpx, но с рельсами 4.2.6. У меня есть работа, но у меня есть проблема, когда при загрузке треков # index view и я нажимаю на трек, чтобы увидеть его, он не загружает карту Google (остальная часть страницы загружается), но если я прав щелкните по ссылке и откройте ее на другой вкладке или введите URL-адрес, чтобы он загрузил карту Google Map.Карта Google не отображается при первой загрузке

Вид трек # индекс был создан с подмостей:

<%= link_to track_path(track), class: 'btn btn-xs', title: "#{ t('.show', default: t('helpers.links.show')) }" do %> 
     <%= glyph 'info-sign' %> 
     <%- end -%> 

Когда я нажимаю на него вызывает дорожки # шоу контроллер:

def show 
@track = Track.find(params[:id]) 
respond_to do |format| 
    format.html 
    format.json { 
    render :json => @track.to_json(:methods => [:polyline],:only => [:name]) 
    } 
end 

конец

ломаная просто метод для кодирования точек gpx в виде полилинии с использованием драгоценного камня Polyline.

Дорожки # показать вид загрузить карту с:

<div id="map_canvas" style="height: 200px; margin-bottom: 20px"></div> 

Код инициализации для карт в CoffeeScript:

gm_init = -> 
    gm_center = new google.maps.LatLng(38, 0) 
    gm_map_type = google.maps.MapTypeId.SATELLITE 
    map_options = {center: gm_center, zoom: 8, mapTypeId: gm_map_type} 
    new google.maps.Map(@map_canvas,map_options); 
$ -> 
    map = gm_init() 

То, что я не понимаю, почему при загрузке/дорожек/1 работает нормально, когда нажимает на индекс для загрузки того же URL-адреса, что он не показывает коврик и пустую область

ответ

2

Это, скорее всего, проблема с Turbolinks. Я использую эту проблему и в своем приложении. Я установил мои вопросы, обернув мой JS внутри

$(document).on('ready turbolinks:change turbolinks:load', function() { });

+0

Это турбины, которые вызывают проблемы не с цепями – PerseP

+0

@PerseP Вот что я имел в виду, извините. – Vlad

+0

Да, это также работает, но это для версии 5 Turbolinks, для классической версии, которую я использовал: '$ (document) .on" page: change ", -> your_js_here ' – PerseP

3

Это проблема с turbolinks и Rails 4. Turbolinks не загружает JS, нужно загрузить карты. Чтобы решить эту проблему, я добавил 'data-no-turbolink': true по ссылке, которая загружает страницу с картой:

<%= link_to track_path(track), class: 'btn btn-xs', title: "#{ t('.show', default: t('helpers.links.show')) }", 'data-no-turbolink': true do %> 

Есть и другие способы, но я думаю, что это самое простое.

+0

Хотя это самый простой способ, это не самый мудрый. Turbolinks, хотя это боль в заднице, чтобы «осваивать», это очень полезно в том, что он делает. Попробуйте мой метод, который должен работать. Все равно помог мне! – Vlad

Смежные вопросы