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

And*_*eas 3 ruby-on-rails

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

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

你对这种情况有什么看法?

Jer*_*iko 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
Run Code Online (Sandbox Code Playgroud)

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

@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
Run Code Online (Sandbox Code Playgroud)

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