1

我在使用 Rails 3(ruby 1.9.2)和嵌套资源时遇到了这个烦人的问题。在我的路线中:

resources :lists do
  resources :items, only: [:destroy, :update, :create]
end

ItemsControllerrespond_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 对象。

4

1 回答 1

2

我不完全确定您还期望它做什么。如果item被删除,则 JSON 响应将为空,因为它无法返回已销毁的对象。

使用createand update,该item对象仍然存在,因此它将作为 JSON 哈希返回。

于 2012-01-19T17:27:27.020 回答