我想做类似 How to pass a Javascript variable to Rails Controller?的事情,但我似乎无法让它为我的目的而工作.我正在使用拖放jQuery将“项目”转移到“pods”.这是我的代码: function onReceive(id,pod_i
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呈现,并在客户端上作为HTML和JavaScript进行评估.客户端/浏览器和服务器之间没有内联通信.假设jQuery:
function onReceive(id,pod_id){ $.ajax({ url: "/some/url", data: {pod_id: pod_id, id: id} }); }
然后你需要设置一个控制器来响应/ some / url,并用params [:pod_id]和params [:id]做你需要做的事情.