Rails 4.2 ActionController:BadRequest 自定义错误信息
Rails 4.2 ActionController:BadRequest custom error message
如果验证失败或 400 - bad request
缺少参数,我想从我的控制器 return。所以在我的控制器中如果有
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
例外?
试试这个:
raise ActionController::BadRequest.new(), "The Json body needs to be wrapped inside a \"Patch\" key"
如果验证失败或 400 - bad request
缺少参数,我想从我的控制器 return。所以在我的控制器中如果有
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
例外?
试试这个:
raise ActionController::BadRequest.new(), "The Json body needs to be wrapped inside a \"Patch\" key"