Forum: Rails-ES Session ID demasiado largo

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
4b7968d41ad6bbb107921b44db2b17c3?d=identicon&s=25 César Díaz (cesardiaz)
on 2009-05-05 14:00
Hola,

Estoy teniendo problemas con el identificador de sesión de mi aplicación
en Rails (2.2.2). Necesito en determinado momento guardar un usuario
anónimo en mi base de datos, el cual quiero identificar de manera única
con el id de su sesión. Para ello pongo el siguiente código:

def save_anonymus_user
      self.current_user = User.new(:login => "guest" +
session.session_id,
        :password => "guest", :confirm_password => "guest", :session_id
=> session.session_id)
  end

Pero en este punto el session_id vale una cadena muy larga, que no es de
32 caracteres como se supone debería ser:

BAh7CToMY3NyZl9pZCIlYmE1ZWYxNzY3MzUwMjI2MzU0NWFhMWUxODZkZDY4M2U6EXNlYXJjaFN0cmluZyIJbmFkYToPdXBkYXRlZF9hdEl1OglUaW1lDatQG4BQk5jZBjofQG1hcnNoYWxfd2l0aF91dGNfY29lcmNpb25GIgpmbGFzaElDOidBY3Rpb25Db250cm9sbGVyOjpGbGFzaDo6Rmxhc2hIYXNoewAGOgpAdXNlZHsA--206695460a9e840bd0393690e0d8813ee46ce434

Además, controlo la expiración de la sesión con el plugin
session_lifetime, para borrar el usuario anónimo insertado previamente:

  expires_session :time => 5.minutes, :redirect_to => '/', :on_expiry =>
lambda {
    user = User.find_by_session_id(session.session_id)
    User.delete(user.id) unless user.nil?
  }

Aquí el session_id sí que es una cadena de 32 caracteres como se supone
que debe ser.

Qué estoy haciendo mal en el momento de la inserción para que el ID de
la sesión sea una cadena tan larga?? Cómo lo puedo solucionar? Existe
algún otro método para hacer lo que estoy intentando?

Muchas gracias.
Thanks!
This topic is locked and can not be replied to.