我通过navigator.geolocation获取用户位置。我需要的是在我的控制器中使用用户地理位置按距离排序。如何从控制器获取navigator.geolocation?对于每个用户来说,这种javascript对象是否有一些全局存储?
您应该通过 POST/COOKIE 将地理位置从 javascript 发送到 rails。
jQuery
$(function(){
navigator.geolocation.getCurrentPosition(function(pos){
$.post('/set_geolocation',{latitude: pos.coords.latitude, longitude: pos.coords.longitude})
});
});
导轨
# routes.rb
...
post '/set_geolocation' => 'users#set_geolocation'
...
# users_controller.rb
class UsersController < ApplicationController
def set_geolocation
session[:location] = {:latitude=> params[:latitude], :longitude=> params[:longitude]}
end
end
或
jQuery
$(function(){
navigator.geolocation.getCurrentPosition(function(pos){
document.cookie = document.cookie + '; latitude=pos.coords.latitude; longitude=pos.coords.longitude'
});
});
导轨
# 在控制器中的某个地方 ...饼干[:纬度]...