我正在Heroku上构建一个Rails 3应用程序。现在我的错误页面和404页面都是标准的rails / heroku页面。
我想定制这两个。有一个错误页面,并有一个404的页面。
谷歌上发现的所有教程都已存在多年,并且不适用于Rails 3。
你能否提出一个很好的现代教程或如何做到这一点的提示?
由于
答案 0 :(得分:36)
如果您想捕获特定错误,请使用ApplicationController
中的rescue_from
。
否则,如果您只想编辑默认错误页面,请在 {Rails.root} / public中编辑 500.html 和 400.html 文件
答案 1 :(得分:11)
答案 2 :(得分:11)
当Rails 3.0问世时,人们突然忽略的一个功能是能够更好地处理异常。问题是:由于Rails 3变得更加“流畅”,我们不得不将一些功能移到中间件堆栈,这迫使我们移动整个异常处理。 Rails 3.2尝试通过允许您设置自己的异常机架应用程序(在发生故障时调用)来尝试将某些自定义重新带回游戏。例如,您可以在config / application.rb中将例外应用程序设置为您自己的路由器:
config.exceptions_app = self.routes
现在,每次出现异常时,都会调用您的路由器。因此,要渲染自定义404页面,您只需添加到路由器:
match "/404", :to => "errors#not_found"
并根据需要在控制器中实现逻辑!但是,如果你走这条路,有几点要记住:
rails server -e production
] 请记住,无论你在错误控制器中做什么,它都不应该是“花哨的”。保持简单,因为您的应用程序已经出现问题!
答案 3 :(得分:3)
好吧rails3仍在公用文件夹中使用相同的404.html,422.html和500.html。您可以自定义这些。
如果您正在谈论实际捕获这些异常,并做一些动态的东西,我认为基本功能是相同的,有一些around_filter
可以在application_controller
中捕获您的特定异常,即{{ 1}}并做一些事情。