在我的Ruby on Rails应用程序中,当给定路径与我的应用程序不匹配或存在时,我想显示404错误页面而不是路由错误。任何人都可以帮助我实现这个目标吗?
答案 0 :(得分:13)
这已经是生产中的默认行为。在开发环境中,会显示路由错误,让开发人员注意并修复它们。
如果您想尝试,请在生产模式下启动服务器并进行检查。
$ script/rails s -e production
答案 1 :(得分:9)
ApplicationController
中的
rescue_from ActiveRecord::RecordNotFound, :with => :rescue404
rescue_from ActionController::RoutingError, :with => :rescue404
def rescue404
#your custom method for errors, you can render anything you want there
end
答案 2 :(得分:7)
如果您无法在本地轻松运行生产模式,请在consider_all_requests_local
文件中将config/environments/development.rb
设置为false。
答案 3 :(得分:0)
您可以捕获未找到路由时引发的异常,然后呈现自定义页面。如果您需要有关代码的帮助,请告诉我们。可能有很多其他方法可以做到这一点,但这肯定有效。
答案 4 :(得分:0)
此返回404页
在ApplicationController中
class ApplicationController < ActionController::Base
rescue_from ActiveRecord::RecordNotFound, with: :route_not_found
rescue_from ActionController::RoutingError, with: :route_not_found
rescue_from ActionController::UnknownFormat, with: :route_not_found
def route_not_found
render file: Rails.public_path.join('404.html'), status: :not_found, layout: false
end