diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2015-09-29 14:36:32 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2015-09-29 14:36:32 -0700 |
commit | ea3908535a832c80adfb251527609aa75e982f6d (patch) | |
tree | 9d2f69ec1a64821be452c907d481b49ed3faba9a /railties | |
parent | 42070f892b1b625f89c3d9fe804cf1b43b25633e (diff) | |
download | rails-ea3908535a832c80adfb251527609aa75e982f6d.tar.gz rails-ea3908535a832c80adfb251527609aa75e982f6d.tar.bz2 rails-ea3908535a832c80adfb251527609aa75e982f6d.zip |
call `default_middleware_stack` before merging stacks
`default_middleware_stack` seems to kick off the `on_load` calls that
may mutate the middleware stack. We have to call that method before
merging middleware stacks, otherwise the middleware stacks get mutated
*after* the app middleware stack is built.
Diffstat (limited to 'railties')
-rw-r--r-- | railties/lib/rails/engine.rb | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/railties/lib/rails/engine.rb b/railties/lib/rails/engine.rb index 457a50e649..a9d98a9d92 100644 --- a/railties/lib/rails/engine.rb +++ b/railties/lib/rails/engine.rb @@ -508,7 +508,8 @@ module Rails def app @app || @app_build_lock.synchronize { @app ||= begin - config.middleware = build_middleware.merge_into(default_middleware_stack) + stack = default_middleware_stack + config.middleware = build_middleware.merge_into(stack) config.middleware.build(endpoint) end } |