module Erorr module Middleware class Rack def initialize(app) @app = app end def call(env) begin response = @app.call(env) rescue Exception => exception request = ActionDispatch::Request.new env location = request.parameters.values_at('controller', 'action').join('#') request_params = { params: request.parameters, remote_ip: request.remote_ip, } Erorr.notify exception, location: location, request: request_params raise end response ensure # Erorr.clear_request_data end end end end