如何控制Rails 5中显示的错误消息?

问题描述 投票:1回答:1

我正在构建不是以API模式而是为API的Rails 5应用程序。

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

浏览器返回的只是:

500内部服务器错误如果您是该网站的管理员,请阅读此Web应用程序的日志文件和/或Web服务器的日志文件,以找出问题所在。

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

ruby-on-rails ruby-on-rails-5
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.