我正在开发一个应用程序,其中存储在数据库中的项目显示在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
?
答案 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>