如何设置一个Rails变量等于一个JavaScript变量?
问题描述:
我想要做类似How to pass a Javascript variable to Rails Controller?的东西,但我似乎无法得到它为我的目的工作。我使用拖放jQuery将“items”转换为“pod”。这里是我的代码:如何设置一个Rails变量等于一个JavaScript变量?
function onReceive(id,pod_id){
var id = id;
var pod_id = pod_id;
confirm("Add " +id + " to " + pod_id + "?");
}
我想要做的是真的是这样的:
function onReceive(id,pod_id){
<% @pod_id = pod_id %>
<% @id = id %>
}
但我知道,解决的办法是不是很容易。我如何将id和pod_id传递给我的控制器?理想情况下,我想将它传递给更新操作。 P.S:我不知道AJAX可言,因此,如果这是唯一的办法请提供详细资料...
答
只有这样,才能从浏览器客户端将数据传递给一个Rails应用程序,是通过HTTP。而要在JavaScript中执行HTTP,则使用XHR(也称为AJAX)。因为你的代码示例中暗示,因为模板是由Rails的呈现在服务器上,并作为evaulated HTML和JavaScript客户端,则无法做到这一点的模板。客户端/浏览器和服务器之间没有内联通信。
假设的jQuery:
function onReceive(id,pod_id){
$.ajax({
url: "/some/url",
data: {pod_id: pod_id, id: id}
});
}
然后,你需要建立一个控制器到/一些/ URL响应,做任何你需要params[:pod_id]
和params[:id]
做。
凡被称为先'的onReceive(ID,pod_id)'方法?您可以从中获取并分配值。 – user482594