Spaces:
Paused
Paused
| class ErrorsController < ApplicationController | |
| include Gaffe::Errors | |
| # Render this page even if authenticity token checks fail. | |
| skip_before_action :verify_authenticity_token | |
| # Only respond with HTML or JSON, regardless of what is asked for. | |
| before_action :override_format | |
| def show | |
| respond_to do |format| | |
| format.html { render "errors/#{@rescue_response}", status: @status_code } | |
| format.json { render json: { error: @status_code }, status: @status_code } | |
| end | |
| end | |
| # GET /errors/:error_type | |
| def simulate | |
| valid_types = %w[ | |
| internal_server_error | |
| not_acceptable | |
| not_found | |
| unprocessable_entity | |
| service_unavailable | |
| ] | |
| if params[:error_type].in?(valid_types) | |
| render "errors/#{params[:error_type]}" | |
| else | |
| raise ":error_type should be one of #{valid_types.join(', ')}" | |
| end | |
| end | |
| private | |
| # We want requests for images and all other general content (pdf, doc, etc) to be treated as html requests. | |
| def override_format | |
| request.format = 'html' unless params[:format] == 'json' | |
| end | |
| end | |