summaryrefslogtreecommitdiff
path: root/app/controllers
diff options
context:
space:
mode:
authorAzul <azul@leap.se>2013-09-02 08:59:57 +0200
committerAzul <azul@leap.se>2013-09-03 08:30:12 +0200
commita78b5f2a6aa25bfe9a34e865f128289d9bb8f3c0 (patch)
tree9dd72f7ed6905c7fd5555fcd17ef1588c4b01a6d /app/controllers
parentc17edbc069c6dcfc3dd20d8cdfb5922032769a5f (diff)
Ensure json requests get json error response on failure
Normally rails sends an html page which can't be parsed by the client.
Diffstat (limited to 'app/controllers')
-rw-r--r--app/controllers/application_controller.rb13
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.
#