2011-07-26 286 views
2

我想要做类似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可言,因此,如果这是唯一的办法请提供详细资料...

+0

凡被称为先'的onReceive(ID,pod_id)'方法?您可以从中获取并分配值。 – user482594

回答

6

只有这样,才能从浏览器客户端将数据传递给一个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]做。

相关问题