Rails使用respond_with destroy动作嵌套资源

时间:2011-07-21 01:37:08

标签: ruby ruby-on-rails-3

嵌套资源销毁操作的适当respond_with行是什么?

我的路线:

resources :vendors do
  resources :products, :except => [:index]
end

产品#stroy(注意@vendor@product找到了before_filter,此处省略了

def destroy
  @product.destroy 
  respond_with @vendor, @product
end

根据我的功能测试,这将返回/vendors/X/products/X而不是/vendors/X

我应该将其更改为responed_to @vendor吗?

2 个答案:

答案 0 :(得分:5)

我相信Rails足够聪明,可以理解@product被销毁时该怎么做

respond_with [@vendor, @product]

如果没有,那就试试这个

respond_with @product, :location => vendor_path(@vendor)

答案 1 :(得分:2)

对不起,答案完全错了(误解了你的问题):

您的销毁代码可以是这样的:

def destroy
  @product = Product.find(params[:id])
  @product.destroy 
  redirect_to <route method for vendor's products index>, :notice => 'Any message'
end

查看终端中输入rake路线的确切路线。

params [:vendor_id]也应该可用。