在页面刷新时,Ruby生成的javascript文件未更新

时间:2015-12-25 18:11:43

标签: javascript ruby-on-rails ruby google-maps

我正在开发一个应用程序,其中存储在数据库中的项目显示在Google地图上。为此,我将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 %>
}

此工作正常,项目显示正确,但是当我添加新项目并刷新我的地图页面时,不会显示新添加的项目。在对数据库进行更改并单击刷新后,gmap.js.erb未更新。我想仅通过单击浏览器中的刷新按钮来触发gmap.js.erb更新是不够的。我该怎么办?每当修改项目表时,如何更新gmap.js.erb

1 个答案:

答案 0 :(得分:3)

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

view.html.erb

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