mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Don't reuse a closed flash when using now
This commit is contained in:
parent
22fcef90b1
commit
89ed9fbd19
2 changed files with 13 additions and 1 deletions
|
@ -70,6 +70,10 @@ module ActionDispatch
|
|||
def close!(new_flash)
|
||||
@flash = new_flash
|
||||
end
|
||||
|
||||
def closed?
|
||||
@flash.closed?
|
||||
end
|
||||
end
|
||||
|
||||
class FlashHash
|
||||
|
@ -146,7 +150,7 @@ module ActionDispatch
|
|||
#
|
||||
# Entries set via <tt>now</tt> are accessed the same way as standard entries: <tt>flash['my-key']</tt>.
|
||||
def now
|
||||
@now ||= FlashNow.new(self)
|
||||
@now = (!@now || @now.closed?) ? FlashNow.new(self) : @now
|
||||
end
|
||||
|
||||
attr_reader :closed
|
||||
|
|
|
@ -272,6 +272,14 @@ class FlashIntegrationTest < ActionDispatch::IntegrationTest
|
|||
end
|
||||
end
|
||||
|
||||
def test_setting_flash_now_does_not_raise_in_following_requests
|
||||
with_test_route_set do
|
||||
env = { 'action_dispatch.request.flash_hash' => ActionDispatch::Flash::FlashHash.new }
|
||||
get '/set_flash_now', nil, env
|
||||
get '/set_flash_now', nil, env
|
||||
end
|
||||
end
|
||||
|
||||
def test_setting_flash_raises_after_stream_back_to_client_even_with_an_empty_flash
|
||||
with_test_route_set do
|
||||
env = { 'action_dispatch.request.flash_hash' => ActionDispatch::Flash::FlashHash.new }
|
||||
|
|
Loading…
Reference in a new issue