diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2017-04-02 19:43:09 +0200 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2017-04-02 19:43:44 +0200 |
commit | 5b12624847f6a599e1bbb3b24fc87c3b222e6716 (patch) | |
tree | f6fda89ae5288e5e48d12c534562f10aca290f11 /app | |
parent | 34ff11c49600e2ca8547f4044f2c73b33aa70c34 (diff) |
Add proper error page for request timeouts
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/application_controller.rb | 8 | ||||
-rw-r--r-- | app/views/errors/503.html.haml | 5 |
2 files changed, 13 insertions, 0 deletions
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index ef9364897..abfb5bb8c 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -12,6 +12,7 @@ class ApplicationController < ActionController::Base rescue_from ActionController::RoutingError, with: :not_found rescue_from ActiveRecord::RecordNotFound, with: :not_found rescue_from ActionController::InvalidAuthenticityToken, with: :unprocessable_entity + rescue_from Rack::Timeout::RequestExpiryError, Rack::Timeout::RequestTimeoutError, with: :request_timeout before_action :store_current_location, except: :raise_not_found, unless: :devise_controller? before_action :set_locale @@ -69,6 +70,13 @@ class ApplicationController < ActionController::Base end end + def request_timeout + respond_to do |format| + format.any { head 503 } + format.html { render 'errors/503', layout: 'error', status: 503 } + end + end + def current_account @current_account ||= current_user.try(:account) end diff --git a/app/views/errors/503.html.haml b/app/views/errors/503.html.haml new file mode 100644 index 000000000..f88d50d36 --- /dev/null +++ b/app/views/errors/503.html.haml @@ -0,0 +1,5 @@ +- content_for :page_title do + Request timeout + +- content_for :content do + It took too long to process your request. This might be a temporary server issue |