Estaba buscando una respuesta más detallada, y terminé encontrándola a través de la investigación. Lo siguiente se aplica si su proyecto está almacenando su sesión en una base de datos de Postgres.
NOTA: Su aplicación puede tener conexiones con más de una base de datos. Todavía no he descubierto cómo Rails determina cuál de estas conexiones usar. Mi proyecto session_store.rb
está vacío.
Encontrará los mensajes flash en la tabla sessions
. Hay una columna llamada data
que contiene una cadena codificada en base64.
Si decodifica la cadena, encontrará un blob binario que contiene no solo los mensajes flash (en forma ordenada, para que puedan representar cualquier tipo de objeto Ruby), sino también el token CSRF y varias otras cosas .
Todo el blob es en realidad una tabla hash ordenada. Se puede desasociar en Ruby con Marshal.load
, y después de realizar cualquier cambio, se puede volver a ordenar con Marshal.dump
.
Debe configurarlos pero sin utilizar la varilla flash. ¿Esto tiene sentido? Solo preguntando para entender lo que quieres lograr. – pduersteler
Si estuvieran almacenados en cookies, los establecería directamente: 'cookies [: flash] [: notice] =" Hello World! "'. Pero están almacenados en otro lugar. Entonces la pregunta es: ¿dónde están almacenados :) – fl00r
De guías de raíl: El flash es una "parte especial de la sesión" que se borra con cada solicitud. y también Todas las tiendas de sesión usan una cookie para almacenar una ID única para cada sesión Creo que si usamos cookieStore para almacenar datos de sesión, solo flash se almacenará en cookies. Generalmente utilizamos solo cookies, así que creo que el mensaje flash debe estar en algún lugar de la cookie [: session]. Bueno, soy novato en los rieles. corrígeme si estoy equivocado. – rtcoms