When does Rails create a session object?

I am trying to simulate multiple users accessing my app from the same
development machine.

To do so, I am trying to understand when Rails creates a session
object and what triggers this.

My tests indicate that an empty session object is created as soon as
the server receives a HTTP request from a browser.

If I open up another browser session on my development machine and
issue another HTTP request, no new session object is created - Rails
reuses the existing one.

Why is this? Does Rails look at some specific information in the HTTP
request headers when determining whether or not to create a new
session object?

I hope this makes sense.

it has to do with your browser.

when a session is created, a cookie is set in your browser for the
domain your are visiting. this cookie contains the host, path, name
and value. for example, if i visit localhost:3000/ (my development
machine), i get a cookie

host: locahost
path: /
name: _session_id
content: 1b87c8ad2bc274d96c7efb8a34ca5d3d

cookies exist at the browser level, so if you open a new browser
tab/window, and access the same page a second time, this cookie data
is sent as part of the request since it already exists for the domain.

Cookie: _session_id=1b87c8ad2bc274d96c7efb8a34ca5d3d

and since you already have a cookie with the session id, and your app
has a session stored with that id, you won’t get a new one.

you have some options.

  1. test your rails app using integration testing to simulate multiple
    users.

  2. use 2 different machines.

  3. use 2 different browsers (ex: firefox and opera) from the same
    machine.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs