Ruby on rails 输入数组在Rails参数中转换为哈希

Ruby on rails 输入数组在Rails参数中转换为哈希,ruby-on-rails,parameter-passing,Ruby On Rails,Parameter Passing,我正在AJAX请求中发送一个数组: $.ajax( { type: "POST", url: "http://192.168.0.15/calc", data: { "phone": phone, "points": [ { "lat": 59.15234, "lon": 30.99 }, { "lat": 59.15244, "

我正在AJAX请求中发送一个数组:

$.ajax(
    {
        type: "POST",
        url: "http://192.168.0.15/calc",
        data: {
            "phone": phone,
            "points": [
                { "lat": 59.15234, "lon": 30.99 },
                { "lat": 59.15244, "lon": 30.99 },
                { "lat": 59.15254, "lon": 30.99 }
            ],
            "start_at": 1407249093,
            "certificate": "849840487484"
        },
        success: function(data) {
            alert('success');
        },
        error: function(jqXHR, textStatus, errorThrown){
            console.log(jqXHR.statusCode());
            console.log(textStatus);
            console.log(errorThrown);
        }
    }
);
然后检查各点:

params[:points].inspect
然后查看散列:

{
  "0"=>{"lat"=>"59.15234", "lon"=>"30.99"},
  "1"=>{"lat"=>"59.15244", "lon"=>"30.99"},
  "2"=>{"lat"=>"59.15254", "lon"=>"30.99"}
}
如何获取数组而不是散列(最好是在最初不必将散列转换为数组的情况下)?

如果您可以这样做:

"points": [
    '{ "lat": 59.15234, "lon": 30.99 }',
    '{ "lat": 59.15244, "lon": 30.99 }',
    '{ "lat": 59.15254, "lon": 30.99 }'
]
现在,这将被视为字符串数组,在解析时,您可以将其转换为哈希以进行解析

告诉我这是否解决了你的问题

编辑

$.ajax({
  ..
  ..
  dataType: 'json',
  contentType: 'application/json',
  data : JSON.stringify({"points": [
     { "lat": 59.15234, "lon": 30.99 },
     { "lat": 59.15244, "lon": 30.99 },
     { "lat": 59.15254, "lon": 30.99 }]
  })
});
这里的解决方案


您只需添加内容类型并将其设置为
contentType:'application/json'

,这看起来像是一个解决方案,而不是真正的解决方案。不幸的是,这里指出的解决方案可能重复,这会导致jQ发送选项请求。我甚至不知道这个HTTP方法存在。答复是404.P.S。这是因为相同的域策略。将ths表单放入web应用程序后,一切正常。