diff options
author | Grey Baker <greysteil@gmail.com> | 2014-07-13 17:58:20 +0100 |
---|---|---|
committer | Grey Baker <greysteil@gmail.com> | 2014-07-14 11:55:44 +0100 |
commit | f49d20ef36c2d339e7a988fdc52981cdb95af22f (patch) | |
tree | 821229483a98c8104aef5292cc89e18563d83873 /actionpack/lib | |
parent | ccac6082bd4265f4827cc8bf9748c983d0a1c6c6 (diff) | |
download | rails-f49d20ef36c2d339e7a988fdc52981cdb95af22f.tar.gz rails-f49d20ef36c2d339e7a988fdc52981cdb95af22f.tar.bz2 rails-f49d20ef36c2d339e7a988fdc52981cdb95af22f.zip |
Stash original path in `ShowExceptions` middleware
`ActionDispatch::ShowExceptions` overwrites `PATH_INFO` with the status code
for the exception defined in `ExceptionWrapper`, so the path the user was
visiting when an exception occurred was not previously available to any custom
exceptions_app.
The original `PATH_INFO` is now stashed in
`env["action_dispatch.original_path"]`.
Diffstat (limited to 'actionpack/lib')
-rw-r--r-- | actionpack/lib/action_dispatch/middleware/show_exceptions.rb | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/actionpack/lib/action_dispatch/middleware/show_exceptions.rb b/actionpack/lib/action_dispatch/middleware/show_exceptions.rb index 1d4f0f89a6..f0779279c1 100644 --- a/actionpack/lib/action_dispatch/middleware/show_exceptions.rb +++ b/actionpack/lib/action_dispatch/middleware/show_exceptions.rb @@ -42,6 +42,7 @@ module ActionDispatch wrapper = ExceptionWrapper.new(env, exception) status = wrapper.status_code env["action_dispatch.exception"] = wrapper.exception + env["action_dispatch.original_path"] = env["PATH_INFO"] env["PATH_INFO"] = "/#{status}" response = @exceptions_app.call(env) response[1]['X-Cascade'] == 'pass' ? pass_response(status) : response |