¿Cómo se carga esa sesión de fuerza?

Estoy trabajando en una aplicación que necesita usar información de identificación de sesión. Mi sesión está almacenada en cookies. El problema que tengo es que mi sesión no está disponible inmediatamente para el controlador cuando un usuario visita el sitio por primera vez. Creo que me puede estar perdiendo algo sobre cómo se inicializan las sesiones en Rails. Pero estoy convencido de que la sesión no está cargada porque esta es la salida desession.inspect:

#<Rack::Session::Abstract::SessionHash:0x15cb970 not yet loaded>

Aquí es cómo reproducir el problema conRails 3.2.11 yruby 1.9.3:

Crear una nueva aplicación con untest controlador:

rails new my_app
cd my_app/
rails g controller test
rm app/assets/javascripts/test.js.coffee
touch app/views/test/index.html.erb

Trate de obtener el ID de sesión en ese controlador:

class TestController < ApplicationController
  def index
    puts session[:session_id]
    puts session.inspect
  end
end

Añade las rutas necesarias:

MyApp::Application.routes.draw do
  resources :test
end

Luego accede a la aplicación y ve lo que hace:

rails server

tengo que:http://localhost:3000/test

Esa es la salida en la consola:

#<Rack::Session::Abstract::SessionHash:0x3fd10f50eea0 not yet loaded>

Entonces otra vezhttp://localhost:3000/test Y esta vez tenemos una sesión:

400706c0b3d95a5a1e56521e455075ac
{"session_id"=>"400706c0b3d95a5a1e56521e455075ac", "_csrf_token"=>"Euaign8Ptpj/o/8/ucBFMgxGtiH7goKxkxeGctumyGQ="}

Respuestas a la pregunta(4)

Su respuesta a la pregunta