小编典典
根据您的要求,我会说您实际上并不需要ajax,因为大多数处理将使用JS(要求用户访问其位置,解析响应等)完成,因此我将使用JS设置一个cookie,然后Rails会看到)。
在您的控制器中
def action
@lat_lng = cookies[:lat_lng].split("|")
end
在您看来
getGeoLocation();
在您的一个javascript文件中
function getGeoLocation() {
navigator.geolocation.getCurrentPosition(setGeoCookie);
}
function setGeoCookie(position) {
var cookie_val = position.coords.latitude + "|" + position.coords.longitude;
document.cookie = "lat_lng=" + escape(cookie_val);
}
请注意,上述所有方法都不会测试用户是否具有支持地理位置的浏览器,或者用户是否已授予(或拒绝)使用其位置的权限,并且该cookie将是会话cookie,而JS不会请测试一下是否已设置Cookie。要在Cookie上设置更复杂的信息,请访问http://www.quirksmode.org/js/cookies.html。有关使用javascript的GeoLocation的更多信息,请参见http://diveintohtml5.info/geolocation.html。
2020-07-26