Я создал запись как обычно, и byebug подтвердил, что флеш-сообщение создано. Но когда меня перенаправляют, я не вижу никаких вспышек вообще. Вспышка удаляется в некоторых случаях? Как я могу это исправить? Я использую пользовательский метод авторизации omniauth. Если это вызывает проблемы, как я могу исследовать это дальше?
[262, 271] in /home/jacekp/.rvm/gems/ruby-2.4.5@rails4qc_charts/gems/actionpack-4.2.10/lib/action_dispatch/middleware/flash.rb
262: session = Request::Session.find(env) || {}
263: flash_hash = env[KEY]
264:
265: if flash_hash && (flash_hash.present? || session.key?('flash'))
266: session["flash"] = flash_hash.to_session_value
=> 267: env[KEY] = flash_hash.dup
268: end
269:
270: if (!session.respond_to?(:loaded?) || session.loaded?) && # (reset_session uses {}, which doesn't implement #loaded?)
271: session.key?('flash') && session['flash'].nil?
(byebug) session["flash"]
{"discard"=>[], "flashes"=>{"notice"=>"Sample was successfully created."}}
(byebug) n
[266, 275] in /home/jacekp/.rvm/gems/ruby-2.4.5@rails4qc_charts/gems/actionpack-4.2.10/lib/action_dispatch/middleware/flash.rb
266: session["flash"] = flash_hash.to_session_value
267: env[KEY] = flash_hash.dup
268: end
269:
270: if (!session.respond_to?(:loaded?) || session.loaded?) && # (reset_session uses {}, which doesn't implement #loaded?)
=> 271: session.key?('flash') && session['flash'].nil?
272: session.delete('flash')
273: end
274: end
275: end
Эксперимент
Я вставил файлebug в .rvm / gems / ruby-2.4.5 @ rails4qc_charts / gems / rack-1.6.11 / lib / rack / request.rb в
def session; byebug ; @env['rack.session'] ||= {} end
чтобы увидеть, что происходит, и попробовал страницу, которая устанавливает flash в сеансе.
Я проверял это с
(byebug) @env ['rack.session']. Keys
и не нашел ничего, что дало бы мне подсказку.