gpt4 book ai didi

ruby-on-rails - 谷歌地图在第一次加载时不显示

转载 作者:行者123 更新时间:2023-12-04 16:04:33 25 4
gpt4 key购买 nike

我正在尝试遵循此tutorial用于加载 gpx 文件,但使用 Rails 4.2.6。我已经让它工作了,但我有一个问题,当我加载 track#index View 并单击 rails 查看它时,它不会加载 Google map (页面的其余部分加载),但如果我正确的话单击链接并在另一个选项卡中打开它或自己输入网址,它会加载 Google map 。

track#index View 是使用脚手架生成的:

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

当我点击它时,它会调用 track#show Controller :

  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

结束

折线只是一种使用 Polyline gem 将 gpx 点编码为折线的方法。

tracks#show View 加载 map :

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

map 的初始化代码位于coffescript中:

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()

我不明白的是,为什么加载/tracks/1 时工作正常,当单击索引加载相同的网址时,它不显示垫子和空白区域

最佳答案

这是 Turbolinks 和 Rails 4 的问题。Turbolinks 不会加载加载 map 所需的 js。为了解决这个问题,我将 'data-no-turbolink': true 添加到加载带有 map 的页面的链接中:

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

还有其他方法,但我认为这是最简单的。

关于ruby-on-rails - 谷歌地图在第一次加载时不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37658103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com