将JavaScript变量传递到Rails脚本中

将JavaScript变量传递到Rails脚本中,javascript,jquery,ruby-on-rails,Javascript,Jquery,Ruby On Rails,以前可能有人问过这个问题,但我找不到任何可行的方法 我试图将一点信息传递到一个按钮中,该按钮将用户转发到另一个页面 function addMultiple(){ var id = $("#truck_company_id").val(); //dont really want to do this: //window.location.replace("http://www.website.com/companies/"+id+"/trucks"); //wa

以前可能有人问过这个问题,但我找不到任何可行的方法

我试图将一点信息传递到一个按钮中,该按钮将用户转发到另一个页面

function addMultiple(){
    var id = $("#truck_company_id").val();
    //dont really want to do this: 
    //window.location.replace("http://www.website.com/companies/"+id+"/trucks");
    //want to do it this way so will work in development
    window.location = <%= trucks_company_path(id) %>;
}
函数addMultiple(){
var id=$(“#卡车公司_id”).val();
//我真的不想这样做:
//window.location.replace(“http://www.website.com/companies/“+id+”/卡车”);
//如果你想这样做,那么它将在开发中发挥作用
window.location=;
}
我所需要做的就是在用户单击此按钮后将其引导到正确的网站

<button id="class-list" onclick="addMultiple()" class="btn btn-warning pull-right" style="margin: 0;">Add Multiple Trucks</button>
添加多辆卡车

将路径作为数据属性服务器端输出,然后从脚本中检索它

<button data-redirect-url="http://www.website.com/companies/xx/trucks"  id="class-list addMultipleTrucks" class="btn btn-warning pull-right">Add Multiple Trucks</button>

$('#multipleTrucks').click(function(){
    window.location = $(this).data('redirect-url');
});
添加多辆卡车
$('#multipleTrucks')。单击(函数(){
window.location=$(this.data('redirect-url');
});

Big Al Ruby新手,您不能将java脚本变量用于rails


因此,您可以使用“data”属性来获取URL,然后只需传递id即可。

您可以使用字符串串联来摆脱Rails:

window.location = '/companies/' + id + '/trucks'

或者使用Gem,比如

问题是ID发生了变化。。。它位于下拉列表中。。此外,这对开发也不是很友好。将卡车、公司、路径(id)的输出作为下拉列表中每个id/选项的数据重定向url。提交表单时,重定向到下拉列表中当前选定选项的数据重定向url。