您好我正在与Grape合作开发rails项目 基本上我想用葡萄做出自定义错误,因为它支持。 我设法创建了自定义错误,就像这样
module API
module ErrorFormatter
def self.call(message, backtrace, options, env)
{ :response_type => 'error', :details => message }.to_json
end
end
end
它工作正常,但如果我想在其上添加更多详细信息,例如我们发送的状态代码/我们手动传递方法error!
,那么它将在json上显示状态代码。
它可能是这样的
{ :status_code: *status_code_here*, :response_type => 'error', :details => message }
如何设置 status_code_here
的值EDITED
这是葡萄的基础/根
class Base < Grape::API
format :json
error_formatter :json, API::ErrorFormatter
mount API::V1::Base
end
所以这意味着我现在使用自定义错误而不是预先定义的葡萄错误。 如我所知,将以两种方式调用此自定义错误:
requires
error!()
方法称为此https://github.com/intridea/grape#raising-exceptions 任何帮助?
由于
答案 0 :(得分:3)
状态代码嵌入在机架环境中 您可以通过以下方式获取它:
env['api.endpoint'].status
所以你方法的主体就是:
{ :status_code: env['api.endpoint'].status, :response_type => 'error', :details => message }