Rails 3使用嵌套资源销毁方法respond_with JS

时间:2012-01-19 05:22:59

标签: ruby-on-rails ruby-on-rails-3 json nested-routes

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

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

1 个答案:

答案 0 :(得分:2)

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

使用createupdateitem对象仍然存在,因此它会将其作为JSON哈希返回。