如果验证失败或400 - bad request
缺少参数,我想从我的控制器返回。所以在我的控制器中如果有
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
例外添加自定义消息?
答案 0 :(得分:9)
试试这个:
raise ActionController::BadRequest.new(), "The Json body needs to be wrapped inside a \"Patch\" key"