【问题标题】:Rails, global storage for js variableRails,js变量的全局存储
【发布时间】:2011-05-19 15:21:01
【问题描述】:

我通过 navigator.geolocation 获取用户位置。我需要的是在我的控制器中使用用户地理位置来按距离排序。如何从控制器获取 navigator.geolocation?对于每个用户,这种 javascript 对象是否有一些全局存储?

【问题讨论】:

    标签: javascript ruby-on-rails ruby-on-rails-3 google-maps geolocation


    【解决方案1】:

    您应该通过 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'
      });      
    });
    

    导轨

    # 控制器中的某处 ...cookie[:纬度]...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-18
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多