Ruby Rails嵌套资源,带有respond\u和destroy操作
对于嵌套的资源销毁操作,什么是适当的Ruby Rails嵌套资源,带有respond\u和destroy操作,ruby,ruby-on-rails-3,Ruby,Ruby On Rails 3,对于嵌套的资源销毁操作,什么是适当的respond\u with行 我的路线: resources :vendors do resources :products, :except => [:index] end 产品#销毁(注意@供应商和@产品在过滤器前有一个,此处省略) 根据我的功能测试,返回的是/vendors/X/products/X,而不是/vendors/X 我是否应该将其更改为仅响应@vendor?对不起,该答案完全错误(误解了您的问题): 您的销毁代码可以如下所示:
respond\u with
行
我的路线:
resources :vendors do
resources :products, :except => [:index]
end
产品#销毁(注意@供应商
和@产品
在过滤器前有一个,此处省略)
根据我的功能测试,返回的是/vendors/X/products/X
,而不是/vendors/X
我是否应该将其更改为仅响应@vendor
?对不起,该答案完全错误(误解了您的问题):
您的销毁代码可以如下所示:
def destroy
@product = Product.find(params[:id])
@product.destroy
redirect_to <route method for vendor's products index>, :notice => 'Any message'
end
def销毁
@product=product.find(参数[:id])
@产品销毁
重定向到我相信Rails足够聪明,能够理解如果@product被破坏了该怎么办
respond_with [@vendor, @product]
如果没有,那么试试这个
respond_with @product, :location => vendor_path(@vendor)
嗯,我没有产品的索引,所以我想vendor\u url(@vendor)
就足够了?是的,可以。或者你可以只放置@vendor,不需要使用helper方法,你需要在vendor上找到_或在product.vendories上使用_,你是对的<代码>用@vendor、@product、:notice=>“product Deleted”
响应就足够了(注意数组的缺乏)@Eduardo Rdm,@vendor和@product带有一个before_过滤器,该过滤器被省略
第一个示例将我带到/vendors/XXX/products
,它不存在,因为我没有产品的索引路径。我想我需要用第二个。。。有没有人有链接到API文档的respond\u with
?当然可以使用第二种变体。能够使用@vendor、@product、:location=>vendor\u url(@vendor)只是感觉更加一致。我需要找到列出所有可用选项的好文档,这些选项可用于respond\u with
。谢谢你们两位的帮助!
respond_with @product, :location => vendor_path(@vendor)