如何将301重定向应用于由于记录已删除而不再存在的链接

时间:2015-04-08 01:57:34

标签: ruby-on-rails ruby-on-rails-4

如果我从数据库中删除产品,则与其关联的链接不再有效并返回404错误,例如

https://www.luminoto.com/wallpapers/burnt-down-forrest-ca-2006

在rails中,如何确保将所有已删除的产品重定向到我的主页,说产品的存在时间更长?

2 个答案:

答案 0 :(得分:4)

您可以执行以下操作:

class ProductsController < ActionController::Base
  rescue_from ActiveRecord::RecordNotFound, with: :record_not_found

  private def record_not_found
    redirect_to controller: 'home', action: 'index', alert: 'Product no longer exists'
  end
end

查看http://guides.rubyonrails.org/action_controller_overview.html#rescue-from了解详情。

答案 1 :(得分:0)

如果它只是显示链接实际上不起作用的问题..你可以使用link_to_if

如果condition为true,则使用由选项集创建的URL创建给定名称的链接标记,否则仅返回名称。

<%= link_to_if(@product.present?, "Show More", { controller: "sessions", action: "new" }) %>