Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 使用jquery.ajax发送时如何在rails控制器中获取PUT参数_Ruby On Rails 3_Jquery - Fatal编程技术网

Ruby on rails 3 使用jquery.ajax发送时如何在rails控制器中获取PUT参数

Ruby on rails 3 使用jquery.ajax发送时如何在rails控制器中获取PUT参数,ruby-on-rails-3,jquery,Ruby On Rails 3,Jquery,一按按钮我就有了 (function() { $("#btnStep2").click(function() { number = $('#btnStep2').attr('number'); var dataString='number='+number+'&reserved='+$('#rd'+number).is(':checked')+'&environment=qa1'; alert(dataString); $.ajax({ typ

一按按钮我就有了

(function() {
$("#btnStep2").click(function() {

    number = $('#btnStep2').attr('number');
     var dataString='number='+number+'&reserved='+$('#rd'+number).is(':checked')+'&environment=qa1';
    alert(dataString);
$.ajax({
    type: "PUT",
    url: "/tnrepos/"+number,
    contentType: "application/text; charset=utf-8",
    beforeSend: function(xhr) {xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'))},
    data: dataString, 
    success: function(data){ 
        alert("update successfully");

    }});
    return false;
});
});
在服务器上,请参阅

    Started PUT "/tnrepos/12345" for 127.0.0.1 at 2013-03-15 11:38:03 -0700
Processing by TnreposController#update as */*
  Parameters: {"id"=>"12345"}
但是我没有看到其他参数通过

在控制器中,我打印参数

"action"=>"update", "controller"=>"tnrepos", "id"=>"12345"}
为什么没有其他参数?我在firefox和chrome上进行了测试

$.ajax({
    type: "PUT",
    url: "/tnrepos/" + number,
    contentType: "application/text; charset=utf-8",
    beforeSend: function(xhr) {xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'))},
    data: {data : dataString} ,
    success: function(data){ 
        alert("update successfully");

    }});
    return false;
});
});
您可以看到上面使用的数据:{data:dataString}

现在,您的params[:data]将具有数据字符串

我建议将其作为“{number:number,reserved: $('#rd'+number).is(':checked')}并在控制器上访问它们 它们的名称有,params[:number],params[:reserved]等等

试试看,让我知道