ruby-on-rails - 如何停止返回异常html
问题描述
我正在通过从测试应用程序向开发服务器发送请求来测试仅 Rails api 应用程序。有时,当我生成异常时,它会触发一个异常,该异常会返回一个提供异常详细信息的 html 页面。它的开头是这样的:
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Action Controller: Exception caught</title>
<style>
body {
background-color: #FAFAFA;
color: #333;
margin: 0px;
}
这个冗长的页面使得在查看测试应用程序时很难看到正在发生的事情。有什么方法可以让 api 应用程序在遇到异常时返回 json 响应?
解决方案
Rails 没有任何内置的 JSON 异常格式,但您可以使用它rescue_from
来捕获异常并返回您选择的响应:
class ApplicationController < ActionController::API
rescue_from RuntimeError do |ex|
render json: { success: false, error: ex.class.name, message: ex.message }, status: 500
end
end
推荐阅读
- javascript - useEffect 清理函数 React Native
- powerbi - DAX 查询以根据另一列的值的条件查找唯一值
- c# - 多线程在我的 c# 程序中执行比顺序执行需要更多时间
- python - 如何在jupyter笔记本中修复它“没有名为'leven'的模块”
- kubernetes - nni frameworkcontroller 问题,BarrierUnknownFailed 错误
- dataframe - 将时间格式“dd/MM/yyyy hh:mm:ss”转换为“yyyy-MM-ddThh:mm:ss.SSSz”
- push-notification - 华为推送包:getToken返回未知错误码
- ace-editor - 如何在ace编辑器中单击鼠标时获取光标位置
- typescript - 使用 webpack (@vue/cli@next) 构建时如何排除 element-plus 包(由 import CDN 替换)?
- linux - Linux替换文件中的字符