Ruby on rails 如何停止返回异常html
我正在通过从测试应用程序向开发服务器发送请求来测试rails api专用应用程序。有时,当我生成一个异常时,它会触发一个异常,返回一个html页面,给出异常的详细信息。它的开头是这样的:Ruby on rails 如何停止返回异常html,ruby-on-rails,Ruby On Rails,我正在通过从测试应用程序向开发服务器发送请求来测试rails api专用应用程序。有时,当我生成一个异常时,它会触发一个异常,返回一个html页面,给出异常的详细信息。它的开头是这样的: <html lang="en"> <head> <meta charset="utf-8" /> <title>Action Controller: Exception caught</title> <style> bo
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Action Controller: Exception caught</title>
<style>
body {
background-color: #FAFAFA;
color: #333;
margin: 0px;
}
操作控制器:捕获异常
身体{
背景色:#FAFAFA;
颜色:#333;
边际:0px;
}
这个冗长的页面使得查看测试应用程序时很难看到发生了什么。有没有办法让api应用程序在遇到异常时返回json响应?在
application\u controller.rb
或相关的控制器文件中,编写如下内容:
rescue_from WhatEverExceptionClassToBeCaught do |e|
render json: some_json_expression
end
在
application\u controller.rb
或相关的控制器文件中,编写如下内容:
rescue_from WhatEverExceptionClassToBeCaught do |e|
render json: some_json_expression
end
Rails没有任何内置的JSON异常格式,但您可以使用来捕获异常并返回您选择的响应:
class ApplicationController < ActionController::API
rescue_from RuntimeError do |ex|
render json: { success: false, error: ex.class.name, message: ex.message }, status: 500
end
end
class ApplicationController
Rails没有任何内置的JSON异常格式,但您可以使用来捕获异常并返回您选择的响应:
class ApplicationController < ActionController::API
rescue_from RuntimeError do |ex|
render json: { success: false, error: ex.class.name, message: ex.message }, status: 500
end
end
class ApplicationController
better\u errors
不是默认堆栈的一部分,因此您可能需要更准确地解释所看到的内容,更仔细地查看页面它不是better\u errors页面,而是标准的异常页面。我将编辑问题以更正此问题,并提供更多详细信息better\u errors
不是默认堆栈的一部分,因此您可能需要更准确地解释您看到的内容,更仔细地查看页面它不是better\u errors页面,而是标准的异常页面。我将编辑此问题以更正此问题,并提供更多详细信息