我的控制器构建了一个索引,可以很好地将大量内容制成表格。我已经让每个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
提交哪些数据才能工作。如何序列化它不是我的第一个问题。
答案 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