aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib
diff options
context:
space:
mode:
authorAndrew White <andrew.white@unboxed.co>2017-02-25 16:55:07 +0000
committerAndrew White <andrew.white@unboxed.co>2017-02-25 17:07:07 +0000
commit558336ee2afad116077df07b5b963077ac5f5021 (patch)
treefb6b279b5c42c4c82af0da6bccd1710063ee688c /actionpack/lib
parentb04473e51ec19537a0971c6cd921a86d16510f38 (diff)
downloadrails-558336ee2afad116077df07b5b963077ac5f5021.tar.gz
rails-558336ee2afad116077df07b5b963077ac5f5021.tar.bz2
rails-558336ee2afad116077df07b5b963077ac5f5021.zip
Commit flash changes when using a redirect route.
In ca324a0 the flash middleware was effectively removed by its constructor returning the app it was passed and the `commit_flash` call was moved to the `ActionController::Metal#dispatch` method. This broke any redirect routes that modified the flash because the redirect happens before `dispatch` gets called. To fix it, this commit adds a `commit_flash` call in the `serve` method of `ActionDispatch::Routing::Redirect`. Fixes #27992.
Diffstat (limited to 'actionpack/lib')
-rw-r--r--actionpack/lib/action_dispatch/routing/redirection.rb2
1 files changed, 2 insertions, 0 deletions
diff --git a/actionpack/lib/action_dispatch/routing/redirection.rb b/actionpack/lib/action_dispatch/routing/redirection.rb
index dabc045007..e8f47b8640 100644
--- a/actionpack/lib/action_dispatch/routing/redirection.rb
+++ b/actionpack/lib/action_dispatch/routing/redirection.rb
@@ -36,6 +36,8 @@ module ActionDispatch
uri.host ||= req.host
uri.port ||= req.port unless req.standard_port?
+ req.commit_flash
+
body = %(<html><body>You are being <a href="#{ERB::Util.unwrapped_html_escape(uri.to_s)}">redirected</a>.</body></html>)
headers = {