2

我一直在谷歌搜索,但我似乎无法获得正确的设置,通过我在谷歌上看到的东西,我最终得到了这个:

var dataString = $('#markerform').serialize();
        var id = $('#route_id').val()
        $.ajax({
            type: 'POST',
            url:  '/routes/'+id,
            data: { "_method":"put", dataString},
            dataType: "JSON",
            success: function(data) {
                console.log(data);
            }
        });

这对于我的路线控制器

def update
    @route = Route.find(params[:id])
    respond_to do |format|
        if @route.update_attributes
            format.html
            format.json { render text: "Done" }
        else
            format.json { render text: "Bad" }
        end
    end
end

但我最终得到了这个萤火虫错误:

SyntaxError: invalid object initializer
[Break On This Error]   

data: { "_method":"put", dataString},

我该如何清理它,以便通过这个应用程序获得一些成功。谢谢。

4

3 回答 3

1

试试这个(※使用serializeArray代替serialize):

    $.ajax({
        type: 'PUT',
        url:  '/routes/'+$('#route_id').val(),
        data: $('#markerform').serializeArray(),
        dataType: "JSON",
        success: function(data) {
            console.log(data);
        }
    });
于 2013-03-12T06:54:00.340 回答
0

试试这个

var dataString = $('#markerform').serialize();
        var id = $('#route_id').val()
        $.ajax({
            type: 'PUT',
            url:  '/routes/'+id,
            data: dataString,
            dataType: "JSON",
            success: function(data) {
                console.log(data);
            }
        });
于 2013-03-12T06:52:20.090 回答
-1

How do I PUT data to Rails using JQuery已经回答了这个问题。基本上,Rails 允许您通过执行 POST 但添加值为“PUT”的“_method”参数来执行 PUT 调用(以及任何其他不受支持的调用)。

于 2013-03-12T07:39:12.563 回答