Ayuda con variables de session

Hola a todos, estoy desarrollando una aplciación ror para gestión de
odontogramas, paso a explicar:

dentro del controller ‘person’ tengo un método ‘paint_tooth’,
la idea es pintar un cara de un diente, para esto guardo el objeto
@odontogram session[:odontogram].

El probelma puntual que tengo es que al pintar un cara de un diente, la
pinta ok
ahora cuando pinto otra cara se borra la anterior, es decir no guarda
bien
session[:odontogram], estoy atascado con esto agradeceré cualquier ayuda.

Desde ya gracias por adelantado.

Saludos.

Acá está el código:

person_cotroller.rb
http://pastie.caboo.se/73650

_odontogram.rhtml
http://pastie.caboo.se/73655

_tooth.rhtml
http://pastie.caboo.se/73653


Gastón Ramos

“Ser original es en cierto modo estar poniendo de manifiesto la
mediocridad de los
demás.”

– Ernesto Sábato

El programa parece estar bien … donde se inicializa por primera vez
session[:odontograma] ?

El día 26/06/07, Gaston R. [email protected] escribió:

El mar, 26 de jun de 2007, a las 01:53:47 -0300, Silvio Q. dijo:

El probelma puntual que tengo es que al pintar un cara de un diente, la
pinta ok
ahora cuando pinto otra cara se borra la anterior, es decir no guarda bien
session[:odontogram], estoy atascado con esto agradeceré cualquier ayuda.

en el método edit.

_odontogram.rhtml
demás."

Silvio Q.


Ror-es mailing list
[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es


Gastón Ramos

“Ser original es en cierto modo estar poniendo de manifiesto la
mediocridad de los
demás.”

– Ernesto Sábato

Gaston R. wrote:

Hola a todos, estoy desarrollando una aplciaci�n ror para gesti�n de
odontogramas, paso a explicar:

dentro del controller ‘person’ tengo un m�todo ‘paint_tooth’,
la idea es pintar un cara de un diente, para esto guardo el objeto
@odontogram session[:odontogram].

El probelma puntual que tengo es que al pintar un cara de un diente, la
pinta ok
ahora cuando pinto otra cara se borra la anterior, es decir no guarda
bien
session[:odontogram], estoy atascado con esto agradecer� cualquier ayuda.

Me parece que el problema puede estar en que la línea

@odonto.tooth_by_number((params[‘number’]).to_i).paint(params[‘colour’],
params[:face].to_sym)

no cambia el estado de la variable @odonto, así que supongo que aunque
la vuelvas a asignar a la sesión no se guarda el cambio.

De todos modos tienes que tener en cuenta que a la hora de pintar _tooth
los cambios en la sesión no están disponibles porque haces un render y
no un redirect (los cambios en las sesiones están disponibles en el
siguiente request). Te recomiendo que uses @odonto para pintar _tooth o
sino haz un redirect_to y usa la sesión como ya haces.

def paint_tooth
@odonto = session[:odontogram]
@odonto.tooth_by_number((params[‘number’]).to_i).paint(params[‘colour’],
params[:face].to_sym)
session[:odontogram] = @odonto
render :partial => ‘odontogram’
end