将Javascript变量保存到Ruby中

将Javascript变量保存到Ruby中,javascript,ruby,html,Javascript,Ruby,Html,我使用HTML5地理位置代码()来获取用户的位置 ... function showPosition(position) { x.innerHTML="Latitude: " + position.coords.latitude + "<br>Longitude: " + position.coords.longitude; } </script> 。。。 功能显示位置(位置) { x、 innerHTML=“纬度:”+position.co

我使用HTML5地理位置代码()来获取用户的位置

...
function showPosition(position)
  {
    x.innerHTML="Latitude: " + position.coords.latitude + 
    "<br>Longitude: " + position.coords.longitude; 
  }
</script>
。。。
功能显示位置(位置)
{
x、 innerHTML=“纬度:”+position.coords.Latitude+
“
经度:”+position.coords.Longitude; }

我想在ruby中创建一个变量,它保存position.coords.latitude和position.coords.longitude的值,有人知道捕获这些信息并将其保存为ruby变量的最有效方法吗

请求在高级别上有以下步骤:

  • 浏览器向服务器请求页面
  • 服务器处理请求并返回可能包含Javascript代码的页面
  • 浏览器执行javascript代码并继续处理它
  • 在步骤
    2
    中,如何使变量只出现在
    3
    中,这是不可能的


    另一种方法是简单地添加一个ajax调用(即,重复步骤1到3,但不是“浏览器”读取“Javascript代码”),该调用将此信息发送到服务器以保存在数据库或其他文件中,但您仍必须使用Javascript编程逻辑。

    请求的主要步骤如下:

  • 浏览器向服务器请求页面
  • 服务器处理请求并返回可能包含Javascript代码的页面
  • 浏览器执行javascript代码并继续处理它
  • 在步骤
    2
    中,如何使变量只出现在
    3
    中,这是不可能的

    另一种方法是简单地添加一个ajax调用(即,重复步骤1到3,但不是“浏览器”读取“Javascript代码”),该调用将此信息发送到服务器以保存在数据库或其他文件中,但您仍然需要使用Javascript编程逻辑

    有人知道获取这些信息的最有效方法吗 并将其另存为ruby变量

    你对有效性的衡量是什么?数据到达服务器时不会丢失一个随机数字

    发出jQuery ajax请求最简单:

    纬度和经度可以从params散列在操作中检索:

    lat = params[:lat]
    lon = params[:lon]
    
    有人知道获取这些信息的最有效方法吗 并将其另存为ruby变量

    你对有效性的衡量是什么?数据到达服务器时不会丢失一个随机数字

    发出jQuery ajax请求最简单:

    纬度和经度可以从params散列在操作中检索:

    lat = params[:lat]
    lon = params[:lon]
    

    有两种方法可以做到这一点-

  • 打ajax电话

    var latitude = position.coords.latitude;
    var longitude = position.coords.latitude;
    
    $.ajax({
            url: "/<some_route>?latitude="+latitude+"&longitude="+longitude,
            success: function(data) {
                // do something here like for example replace some arbitrary container's html with the stuff returned by server.
                $("#container").html(data);
            }
        });
    
  • 在客户端设置位置cookie,并在服务器端访问它

    var latitude = position.coords.latitude;
    var longitude = position.coords.longitude;
    document.cookie = "cl=" + latitude + "&" + longitude + ";";
    
    在你的控制器中,你可以访问这个-

    current_location = cookies[:cl]
    unless current_location.nil?
      latitude = current_location.split('&')[0]
      longitude = current_location.split('&')[1] 
    end
    

  • 您应该选择选项1,因为cookies随每个HTTP请求一起发送到服务器,此外,您可能需要通知用户使用了跟踪技术。

    有两种方法可以做到这一点-

  • 打ajax电话

    var latitude = position.coords.latitude;
    var longitude = position.coords.latitude;
    
    $.ajax({
            url: "/<some_route>?latitude="+latitude+"&longitude="+longitude,
            success: function(data) {
                // do something here like for example replace some arbitrary container's html with the stuff returned by server.
                $("#container").html(data);
            }
        });
    
  • 在客户端设置位置cookie,并在服务器端访问它

    var latitude = position.coords.latitude;
    var longitude = position.coords.longitude;
    document.cookie = "cl=" + latitude + "&" + longitude + ";";
    
    在你的控制器中,你可以访问这个-

    current_location = cookies[:cl]
    unless current_location.nil?
      latitude = current_location.split('&')[0]
      longitude = current_location.split('&')[1] 
    end
    

  • 您应该选择选项1,因为cookies随每个HTTP请求一起发送到服务器,此外,您可能需要通知用户使用了跟踪技术。

    使用Ajax?JS在客户端执行;在服务器上安装Ruby。您希望如何使用Ruby中的值?您是否希望在服务器端对其进行操作?保存到数据库?这是用于rails应用程序的吗?我最终希望将用户的位置与保存在数据库中的不同位置进行比较。我认为实现这一点的最佳方法是将值保存在params散列中,但我不能完全确定要将值保存在params散列中,它必须通过Ajax或普通用户发起的请求提交。在不知道您真正在做什么的情况下,很难回答这个问题,但是任何标准的HTTP机制都可以工作。使用Ajax吗?JS在客户端执行;在服务器上安装Ruby。您希望如何使用Ruby中的值?您是否希望在服务器端对其进行操作?保存到数据库?这是用于rails应用程序的吗?我最终希望将用户的位置与保存在数据库中的不同位置进行比较。我认为实现这一点的最佳方法是将值保存在params散列中,但我不能完全确定要将值保存在params散列中,它必须通过Ajax或普通用户发起的请求提交。在不知道您真正在做什么的情况下,很难回答,但是任何标准的HTTP机制都可以工作。谢谢!我使用了你的第二种策略,它正是我所需要的。谢谢!我使用了你的第二种策略,它正是我所需要的