如果我从数据库中删除产品,则与其关联的链接不再有效并返回404错误,例如
https://www.luminoto.com/wallpapers/burnt-down-forrest-ca-2006
在rails中,如何确保将所有已删除的产品重定向到我的主页,说产品的存在时间更长?
答案 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" }) %>