diff --git a/Gemfile b/Gemfile index 921074895..e26af28b9 100644 --- a/Gemfile +++ b/Gemfile @@ -8,7 +8,7 @@ end if Bundler::VERSION < '2' source 'https://rubygems.org' # core -gem 'rails', '4.2.3' +gem 'rails', '4.2.3' # when update, all initializers eis_custom files needs check/update gem 'iso8601', '~> 0.8.2' # for dates and times gem 'hashie-forbidden_attributes', '~> 0.1.1' diff --git a/config/initializers/eis_custom_flash.rb b/config/initializers/eis_custom_flash.rb new file mode 100644 index 000000000..4669f1945 --- /dev/null +++ b/config/initializers/eis_custom_flash.rb @@ -0,0 +1,22 @@ +module ActionDispatch + class Flash + def call(env) + @app.call(env) + ensure + session = Request::Session.find(env) || {} + flash_hash = env[KEY] + + if flash_hash && (flash_hash.present? || session.key?('flash')) + session["flash"] = flash_hash.to_session_value + Rails.logger.info "FLASH: #{Time.now.to_s(:db)} #{session['flash']['flashes'].inspect}" if session['flash'] + env[KEY] = flash_hash.dup + end + + if (!session.respond_to?(:loaded?) || session.loaded?) && # (reset_session uses {}, which doesn't implement #loaded?) + session.key?('flash') && session['flash'].nil? + session.delete('flash') + end + end + end +end +