显示异常的错误页面
如果你想向用户展示有意义的错误,而不是简单的“对不起,出错了”,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 将无法在出现错误时显示有用的页面。