Rails, глобальное хранилище для переменной js - PullRequest
1 голос
/ 19 мая 2011

Я получаю местоположение пользователя через navigator.geolocation.Что мне нужно, это использовать геолокацию пользователя в моем контроллере для сортировки по расстоянию.Как получить navigator.geolocation из контроллера?Есть ли какое-то глобальное хранилище для такого вида объектов JavaScript для каждого пользователя?

1 Ответ

3 голосов
/ 19 мая 2011

Вы должны отправить геолокацию из javascript на рельсы через POST / COOKIE.

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'
  });      
});

Рельсы

# где-то в контроллерах ... печенье [: широта] ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...