Rails更新与contenteditable

时间:2015-02-20 21:56:44

标签: ruby-on-rails ruby-on-rails-4 put

我的控制器构建了一个索引,可以很好地将大量内容制成表格。我已经让每个td满足了。 Onblur,我想提交更新的数据。

为了找到正确的行,我给每个tr模型id(作为名称),但我只想更新一个属性,而不是整个模型。我的js看起来像这样:

$.ajax({
    type: 'PUT',
    url:  '/songs/'+$(this).parent("tr").attr("name"),
    data: {$(this).attr("name"): $(this).html()},
    dataType: "JSON",
    success: function(data) {
        console.log(data);
    }
});

但当然,这不起作用(因为“数据:”行)。关键是,我实际需要为控制器的update_attributes提交哪些数据才能工作。如何序列化它不是我的第一个问题。

1 个答案:

答案 0 :(得分:1)

Rails将结合URL中的参数(id)和post发送的数据。所以我的js现在(这发生在blur):

$.ajax({
    type: 'PUT',
    url:  '/songs/'+$(this).parent("tr").attr("name"),
    data: dataToSend,
    dataType: "JSON",
    success: function(data) {
        console.log(data);
    }
});

但在服务器端,密钥为update_attribute,其中突出显示为:

def update
    @song = Song.find(params[:id])
    @song.update_attributes params[:key] => params[:value]
end