Crear otro conjunto de variables de session


#1

Desarrollo una aplicacion la cual usa sessiones para identificar al
usuario
que accesa a ella y para definir ciertos parametros que se usan a lo
largo de
la aplicacion como por ejemplo el nombre de la empresa a gestionar, que
puede variar segun lo indique el usuario al acceder a la aplicacion y
que queda guardado en otra variable de session para su uso en varios
procesos.

AHora bien, sera frecuente (y es necesario) que los usuarios de esta
aplicacion deseen trabajar al mismo tiempo con otra empresa pero en
otra session. Por lo tanto al abrir otra ventana volver a logearse e
indicar la empresa a trabajar se manipula el valor de la primera session
abierta. Mientras se trabaja con la segunda session no hay problema,
pero cuando se vuelve a usar la primera en la otra ventana o pestaña el
valor de la variable de session a cambiado, ya se que ese comportamiento
es normal por que el navegador y sus pestañas comparten la misma cookie.
Pero ¿que puedo hacer para evitar que esto pase?.

¿Existe alguna solucion en Rails para este inconveniente?

La idea es poder logearse las veces que sea en diferentes ventanas
pero creando otro sistemas de variables de session.

Es eso posile? de que manera?

Espero haber sido claro


#2

Buenas,
la solución ideal sería que arrastrases el identificador de la empresa
como
parámetro y así se te solucionaría ese problema. si utilizas los ‘routes
resources’ de rails, se facilitan una serie de herramientas que hacen
que
este aspecto sea bastante cómodo.

si por alguna razón necesitas guardar esa variable en la sesión y evitar
los
problemas con las aplicaciones multi ventana, desconozco si existe algún
plugin en rails que te ayude, pero en el framework ‘seam’ de java existe
una
solución que llamaron ‘contexto conversacional’ y la idea consiste en
pasar
entre petición y petición el identificador de la ‘conversación’ donde
guardarías las variables que necesitases. si en alguna petición no se
pasa
dicho identificador, se generaría un nuevo identificador para comenzar
una
nueva conversación, con lo que al final lo que estarías haciendo es
guardar
en la sesión una tabla hash con los identificadores de las
conversaciones
como claves, y en los valores, otra tabla con las correspondientes
variables
que hayas asignado. no sé si me explico…

como ves, de un modo u otro vas a tener que estar arrastrando variables,
así
que por la situación que planteas me declinaría por el primer
planteamiento
y no me complicaría tanto.

saludos

2009/5/5 Daniel E. removed_email_address@domain.invalid