我在我的第一個Rails應用程序中整合了一個快速內聯編輯功能,並且正如我開始工作一樣,我想我可能違反了RESTful原則。編輯更新了圖像名稱。爲此,它通過PUT
提交至Image#update
,並將新的修改名稱傳遞爲image[name]
。通過內聯編輯調用Rails更新方法
數據庫得到正確更新,但我需要這個值,以便我的標記可以反映名稱更改。爲此,我打電話給/images/:id.json
,但這讓我想知道PUT請求是否可以「有效地」(以這種RESTful方式)返回這樣的值。
想法?
更新:無論它值什麼,我都使用jQuery和jEditable插件來進行內聯編輯。因爲它存在
$(document).ready(function() {
$('h2').editable(
'/images/' + $('#image-id').val() + '.json',
{
method: 'PUT',
name: 'image[name]',
submitdata: { authenticity_token: $('#auth-token').val() },
submit: 'Save',
cancel: 'Cancel'
}
);
})
而且我Image#update
方法現在:這是我的jEditable代碼
def update
@image = Image.find(params[:id])
if @image.update_attributes(params[:image])
flash[:notice] = "Successfully updated image."
respond_to do |format|
format.html { redirect_to @image }
format.json { render :json => @image.to_json }
end
else
render :action => 'edit'
end
end
我認爲你最關心的是來自你的更新JSON的響應是圖像,而不僅僅是一個'head:ok'。那是對的嗎? – 2009-10-06 00:43:21
正確。更新圖像名稱後,我需要返回新名稱,以便我可以顯示它。如果我什麼都不返回,jEditable似乎只是清空這個領域。 – 2009-10-06 01:12:19