输入数组在 Rails 参数中转换为哈希值

Pau*_*aul 5 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, "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);
        }
    }
);
Run Code Online (Sandbox Code Playgroud)

然后检查点:

params[:points].inspect
Run Code Online (Sandbox Code Playgroud)

并查看哈希值:

{
  "0"=>{"lat"=>"59.15234", "lon"=>"30.99"},
  "1"=>{"lat"=>"59.15244", "lon"=>"30.99"},
  "2"=>{"lat"=>"59.15254", "lon"=>"30.99"}
}
Run Code Online (Sandbox Code Playgroud)

如何获取数组而不是哈希(最好是最初,无需将哈希转换为数组)?

Mou*_*lam 2

解决方案在这里

Rails 无法正确解码来自 jQuery 的 JSON(数组变成带有整数键的哈希值)

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