我希望你的控制器能够在验证失败或参数缺失时返回
400 - 错误请求
。因此,在我的控制器中,我有以下代码:if params["patch"].nil? then
raise ActionController::BadRequest.new( "The Json body needs to be wrapped inside a \"Patch\" key")
end
我在应用程序控制器中用以下代码捕获了这个错误:
rescue_from ActionController::BadRequest, with: :bad_request
def bad_request(exception)
render status: 400, json: {:error => exception.message}.to_json
end
但是当我抛出ActionController::BadRequest
时,似乎无法添加自定义消息。因为当传递无效的主体时,响应仅为{"error":"ActionController::BadRequest"}
而不是我提供的哈希表。
在控制台中,我得到了相同的行为。实际上,raise ActiveRecord::RecordNotFound, "foo"
会引发ActiveRecord::RecordNotFound: foo
异常。
但是raise ActionController::BadRequest, "baa"
的结果是
ActionController::BadRequest: ActionController::BadRequest
如何向BadRequest
异常添加自定义消息?