抢救重定向:在Rails中销毁之后回来?

时间:2010-06-15 16:55:06

标签: ruby-on-rails

我正在寻找能够继续使用重定向的最佳实践解决方案:在成功销毁操作后返回,因为可以从各种列表中删除许多项目。

不幸的是,当从项目视图本身启动删除时,策略会失败。

对于这种情况,您推荐什么方法?

1 个答案:

答案 0 :(得分:5)

如果项目从其自己的视图页面中删除,您需要考虑您想要的行为。

我建议选择以下两种方法之一:

保留您的redirect :back,并在请求的资源不再存在时实施某种第二次重定向,即/products/10重定向到/products

@product = Product.find_by_id(params[:id]) # although I admit I'm not sure
redirect_to products_path unless @product  # about this

如果特定路径与被破坏的路径匹配,则更改重定向

@product.destroy # you might need to save the path before you destroy the object..
redirect_to :back and return unless request.referrer == product_path(@product)
redirect_to products_path

我不认为这种情况有一个固定的标准,但我可以纠正。