Rails 更新 contenteditable

Rails updates with contenteditable

我的控制器建立了一个索引,很好地列出了它的大量内容。我已经使每个 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);
    }
});

当然,这不起作用(因为 "data:" 行)。不过,关键是我实际需要为我的控制器 update_attributes 提交哪些数据才能工作。如何序列化不是我首先关心的。

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