我在Heroku上構建了一個Rails 3應用程序。現在我的錯誤頁面和404頁面都是標準rails/heroku頁面。Rails 3 - 自定義錯誤和404頁面
我想定製這兩個。有一個頁面上的錯誤,並有一個404
在谷歌上的所有教程歲頁面,不on Rails的3
工作,能否請您提出一個很好的現代化教程或如何做到以上的提示?
感謝
我在Heroku上構建了一個Rails 3應用程序。現在我的錯誤頁面和404頁面都是標準rails/heroku頁面。Rails 3 - 自定義錯誤和404頁面
我想定製這兩個。有一個頁面上的錯誤,並有一個404
在谷歌上的所有教程歲頁面,不on Rails的3
工作,能否請您提出一個很好的現代化教程或如何做到以上的提示?
感謝
如果要捕獲特定錯誤,請在ApplicationController
中使用rescue_from
。
否則,如果你只是想修改默認的錯誤頁面,編輯500.html和400.html文件{} Rails.root /公共
好Rails3中仍然使用公用文件夾相同404.html,422.html和500.html。您可以自定義這些。
如果你談論的是實際捕獲這些異常,並做一些動態的東西,我覺得基本的功能是一樣的,有一些around_filter
映入在application_controller
即ActiveRecord::RecordNotFound
您的特殊例外,做的東西。
2013從Jose Valim
0更新爲Rails 3.當Rails 3.0問世時,人們突然錯失的功能之一就是能夠更好地處理異常。問題是:由於Rails 3變得更加Rack「流利」,我們必須將某些功能移到中間件堆棧,這迫使我們移動整個異常處理。 Rails 3.2嘗試通過允許您設置自己的例外機架應用程序來重新引導一些自定義,這些應用程序在發生故障時會被調用。例如,你可以設置你的config/application.rb中的例外應用到你自己的路由器:
config.exceptions_app = self.routes
現在,每次有一個例外,你的路由器將被調用。因此,呈現自定義404頁,你可以簡單地添加到您的路由器:
match "/404", :to => "errors#not_found"
而且實現邏輯控制器,如你所願!不過,也有幾件事情要記住,如果你走這條路:
rails server -e production
]請記住,無論你在做錯誤控制器,它不應該是任何「幻想」。保持簡單,因爲你的應用程序已經出錯了!