Ruby on rails 如何停止返回异常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

我正在通过从测试应用程序向开发服务器发送请求来测试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;
    }

操作控制器:捕获异常
身体{
背景色:#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页面,而是标准的异常页面。我将编辑此问题以更正此问题,并提供更多详细信息