Rails,js变量的全局存储

Posted

技术标签:

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

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

【问题讨论】:

【参考方案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[:纬度]...

【讨论】:

以上是关于Rails,js变量的全局存储的主要内容,如果未能解决你的问题,请参考以下文章

在公共 Rails 应用程序中将敏感数据存储在哪里?

在 Vuex 存储中使用全局变量

vue-cli2使用store存储全局变量

微信小程序定义全局变量globalData

在 Rails 线程中访问变量

Rails+React/Next.js:如何存储代码块以保持格式化?