Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby生成的javascript文件不会在页面刷新时更新_Javascript_Ruby On Rails_Ruby_Google Maps - Fatal编程技术网

Ruby生成的javascript文件不会在页面刷新时更新

Ruby生成的javascript文件不会在页面刷新时更新,javascript,ruby-on-rails,ruby,google-maps,Javascript,Ruby On Rails,Ruby,Google Maps,我正在开发一个应用程序,其中存储在数据库中的项目显示在谷歌地图上。为此,我将gmap.js.erb文件添加到app/assets/javascripts文件夹中。项目从相应的表中提取,并按以下方式放在地图上: function showItemsOnMap() { <% Item.all.each do |item| %> var lat = <%= item.lat %>; var lng = <%= item.lng %>; a

我正在开发一个应用程序,其中存储在数据库中的项目显示在谷歌地图上。为此,我将
gmap.js.erb
文件添加到
app/assets/javascripts
文件夹中。项目从相应的表中提取,并按以下方式放在地图上:

function showItemsOnMap() {
  <% Item.all.each do |item| %>
    var lat = <%= item.lat %>;
    var lng = <%= item.lng %>;
    addMarker(lat, lng);
  <% end %>
}
函数showItemsOnMap(){
var-lat=;
var lng=;
添加标记(lat、lng);
}

这工作正常,项目显示正确,但当我添加新项目并刷新地图页面时,不会显示新添加的项目<代码>gmap.js.erb在我更改数据库并单击刷新后不会更新。我想仅仅通过点击浏览器中的刷新按钮来触发
gmap.js.erb
update是不够的。我该怎么做?如何在修改Items表时更新
gmap.js.erb

您的gmap.js.erb将编译为gmap.js,并在使用此js文件的第一次页面请求时缓存。您可以将这些js放在视图中,使其成为动态脚本

view.html.erb

<script>
function showItemsOnMap() {
  <% Item.all.each do |item| %>
    var lat = <%= item.lat %>;
    var lng = <%= item.lng %>;
    addMarker(lat, lng);
  <% end %>
}
</script>

函数showItemsOnMap(){
var-lat=;
var lng=;
添加标记(lat、lng);
}

您的控制台日志/网络面板怎么说?您是否收到304(未修改)响应?添加项目后是否有任何可能发生的错误?是否关闭了TurboLink?及restart@Kalman关闭TurboLink没有帮助。@Blauharley项目的添加、修改和删除没有任何错误。如果我重新启动服务器,它们会正确地显示在地图上。这就是我听起来的样子。服务器生成showItemsOnMap()方法并将其发送到客户端(浏览器)。该方法在客户端上被调用,但客户端永远不会返回服务器请求更多。。。