【发布时间】:2015-12-21 02:53:12
【问题描述】:
我正在开发一个单页 Rails 应用程序,该应用程序集成了大量的 Google 地图,并且在 Rails 和 Javascript 之间的数据流方面遇到了问题。
我的数据库有一个城市表。用户点击一个城市的谷歌地图标记。然后,我想弹出一个叠加层,根据点击的城市进行活动记录查询并显示有关城市的信息。
目前,当用户点击城市并创建 Javascript 事件时,我正在触发 AJAX 请求:
google.maps.event.addListener(marker,'click', function(event) {
var latitude = event.latLng.lat();
var longitude = event.latLng.lng();
$.ajax({
method: 'PUT',
url: '/cities',
data: { latitude: latitude, longitude: longitude },
dataType: 'json'
});
popup.style.display = 'block';
});
});
这会影响我的控制器的更新功能:
def update
latitude = params[:latitude]
longitude = params[:longitude]
@clicked_city = City.find_by(latitude: latitude, longitude: longitude)
end
这会更新@clicked_city 变量,但我的视图不知道,无法进行活动记录查询并显示我想要的信息。很确定我根本不了解这应该如何在 RESTful 应用程序中工作,并希望有一种更简单的方法来做到这一点。
【问题讨论】:
-
您的更新需要一个 respond_to 块。在你的 format.js 中,你需要重新渲染你想要的部分。
标签: javascript ruby-on-rails google-maps-api-3