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
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. [email protected]