顯示異常的錯誤頁面
如果你想向使用者展示有意義的錯誤,而不是簡單的“對不起,出錯了”,Rails 有一個很好的實用工具。
開啟檔案 app/controllers/application_controller.rb
,你應該找到這樣的東西:
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
end
我們現在可以新增一個 rescue_from
來從特定錯誤中恢復:
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
rescue_from ActiveRecord::RecordNotFound, with: :record_not_found
private
def record_not_found
render html: "Record <strong>not found</strong>", status: 404
end
end
建議不要從 Exception
或 StandardError
營救,否則 Rails 將無法在出現錯誤時顯示有用的頁面。