diff options
author | Azul <azul@leap.se> | 2013-09-02 08:59:57 +0200 |
---|---|---|
committer | Azul <azul@leap.se> | 2013-09-03 08:30:12 +0200 |
commit | a78b5f2a6aa25bfe9a34e865f128289d9bb8f3c0 (patch) | |
tree | 9dd72f7ed6905c7fd5555fcd17ef1588c4b01a6d | |
parent | c17edbc069c6dcfc3dd20d8cdfb5922032769a5f (diff) |
Ensure json requests get json error response on failure
Normally rails sends an html page which can't be parsed by the client.
-rw-r--r-- | app/controllers/application_controller.rb | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 9734a33..b808e1c 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -7,6 +7,19 @@ class ApplicationController < ActionController::Base protected + + rescue_from StandardError do |e| + respond_to do |format| + format.json { render_json_error } + format.all { raise e } # reraise the exception so the normal thing happens. + end + end + + def render_json_error + render status: 500, + json: {error: "The server failed to process your request. We'll look into it."} + end + # # Allows us to pass through bold text to flash messages. See format_flash() for where this is reversed. # |