¿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="}