如何将javascript变量传递给rails变量

如何将javascript变量传递给rails变量,javascript,ruby-on-rails,Javascript,Ruby On Rails,如何将javaScript变量传递到ruby中。我想做这样的事情,但我不知道如何表达 function save(){ var g = document.getElementById("self").value; <% @owner.info = g %> } 函数保存(){ var g=document.getElementById(“self”).value; } 另一个可能的解决办法是,我需要能够通过rails而不是javascript提取文本区域的内容 有

如何将javaScript变量传递到ruby中。我想做这样的事情,但我不知道如何表达

function save(){
    var g = document.getElementById("self").value;
    <% @owner.info = g %>
}
函数保存(){
var g=document.getElementById(“self”).value;
}
另一个可能的解决办法是,我需要能够通过rails而不是javascript提取文本区域的内容


有人能帮我吗?

对于香草rails安装和javascript,您尝试做的事情没有意义。下面是一个很好的工作流程,它可以完成您尝试执行的操作,并提供一些详细信息:

1.从服务器请求一个页面 运行rails和应用程序的ruby代码在服务器上执行。服务器接收请求,执行ruby代码,并将响应作为html文档发送

2.用户从服务器获取响应 用户的浏览器接收html并将其转换为漂亮的网页。此时,与应用程序相关的任何javascript都会在用户的浏览器中执行。与服务器的连接已断开,在发出另一个请求之前,不会再执行任何ruby代码

3.用户填写ajax表单 在步骤2中呈现的页面上,您有一个表单。下面您可以告诉此表单通过ajax提交。这意味着浏览器将使用javascript向服务器发送特殊请求,而不是请求新的网页。服务器可以将表单值保存到数据库中,并将响应发送回浏览器。用户始终没有离开当前查看的页面


或者,您可以跳过ajax,让用户提交表单,但您需要将其重定向回他们正在查看的页面(可能还需要在他们提交的表单已保存时添加注释)。

完全可以做与您想要的相反的事(ruby变量到javascript)。你想做的是。。。复杂的使用rails,javascript在浏览器中执行,ruby在服务器上的VM上运行。您可以在服务器上运行nodejs并将其传递给您的ruby应用程序,但我认为这并不是您真正想要做的。请澄清您在这里试图实现的总体方案。每个用户都有一个帐户,他们都有一条关于自己的信息。当他们点击save时,我让javascript提取他们所说的内容,然后我需要将其传输到ruby以存储在数据库中。过去我一直使用form_for来执行此任务,但我总是将用户重定向到另一个页面,现在我不想这样做。我的页面上有一个显示信息的小区域。我正在考虑在那个位置压缩一个表单,而不必处理javascript。您认为这样更好吗?好的,那么您在这里真正想要做的是向服务器发送一个ajax请求,以便在用户不离开页面的情况下保存数据。本指南提供了一个很好的概述:我将我的评论编译成一个答案,并添加了一些关于ruby代码与javascript在何处执行的注释