Rails 5,如何控制显示的错误信息

时间:2017-05-25 16:05:12

标签: ruby-on-rails ruby-on-rails-5

我正在努力构建一个Rails 5应用程序,不是在API模式下,而是在API中。

我的一个API坏了。当我在浏览器中加载网址时:http://localhost:4300/api/v1/skills.json

浏览器只返回:" 500内部服务器错误 如果您是本网站的管理员,请阅读此Web应用程序的日志文件和/或Web服务器的日志文件,以了解出现了什么问题。"

鉴于我处于开发模式,如何让Rails输出更多有用的信息,就像以前版本的Rails一样?

由于

1 个答案:

答案 0 :(得分:2)

将以下行添加到application.rb:

config.exceptions_app = self.routes

因此您可以在路线中添加自定义错误:

Rails.application.routes.draw do

  get "/404" => "errors#not_found"
  get "/500" => "errors#exception"
  post "/500" => "errors#exception"
  get "/400" => "errors#exception"
  post "/400" => "errors#exception"

例如我显示:

class ErrorsController < ApplicationController

  def not_found
    render :json => {:error => "not-found"}.to_json, :status => 404
  end

  def exception
    render json: {
        error: {
          message: env["action_dispatch.exception"].to_s,
          detail: env["action_dispatch.exception"]
        }
      }, 
      :status => 500
  end
end