1
我有這個惱人的問題與Rails 3(紅寶石1.9.2)和嵌套的資源。在我的路線:Rails 3銷燬方法respond_with JS使用嵌套資源
resources :lists do
resources :items, only: [:destroy, :update, :create]
end
我ItemsController
具有respond_to :json
在開始和#destroy
看起來是這樣的:
def destroy
@item = Item.find(params[:id])
@item.destroy
respond_with @list, @item
end
摧毀項目鏈接:
<%= link_to 'x', list_item_path(@list, item), method: :delete, remote: true %>
換算成正確的HTML ,如:
<a href="/lists/1/items/52" data-method="delete" data-remote="true" rel="nofollow">x</a>
當我點擊鏈接時,我的項目被正確刪除,但方法總是返回{}
。我一直在嘗試修補它,但不能從空的JSON對象獲得任何不同的東西!
其他方法(#create
和#update
)按預期工作並返回JSON對象。
我認爲這是不正確的。該項目在數據庫中被刪除,但@ item項目仍然存在。另外,如果我對'@ item.destroy'行發表評論,它甚至不會從數據庫中刪除記錄,並且仍然會返回{} –
好吧,我一直在調查這個問題,你幾乎是正確的。如果它是一個GET,那麼我會得到這個對象,但是當你使用DELETE或者PUT時,rails只允許你把{}和狀態OK作爲響應。 –