From a78b5f2a6aa25bfe9a34e865f128289d9bb8f3c0 Mon Sep 17 00:00:00 2001 From: Azul Date: Mon, 2 Sep 2013 08:59:57 +0200 Subject: Ensure json requests get json error response on failure Normally rails sends an html page which can't be parsed by the client. --- app/controllers/application_controller.rb | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'app') 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. # -- cgit v1.2.3