How to set rack.session.options :defer with Rails middleware?

Viewed 14

I need to set env['rack.session.options'][:defer] to true, so I wrote this middleware:

class SessionIntercepterMiddleware
  def initialize(app)
    @app = app
  end

  def call(env)
    env['rack.session.options'] = env['rack.session.options'] || {}
    env['rack.session.options'][:defer] = true
    @app.call(env)
    puts "#{env['rack.session.options'][:defer]}"
  end
end

And injected between ActionDispatch::Cookies and ActionDispatch::Session::CacheStore (I am using session_store: :cache_store):

config.middleware.insert_after ActionDispatch::Cookies, SessionIntercepterMiddleware

But it doesn't work. The last line (puts...) prints false.

How can I make it work?

0 Answers
Related