28-07-2011, 08:38 PM
(Modification du message : 30-09-2011, 02:24 PM par Sephi-Chan.)
Bonjour,
Depuis cette après midi je me rend compte que mon application ne tourne plus du point de vue de la session utilisateur.
En effet, il semble que la méthode find ne fasse plus de comparaison correcte.
Je m'explique, une fois logué, je met en session(cookie) le contenu d'un champ persistence_token de ma table de donnée.
Ainsi je retrouve mon utilisateur et ses infos par le biais de ce cookie.
Le problème est que le cookies contient bien ma chaine "persistence_token" mais que active_record ne semble pas retrouver l'utilisateur qui correspond.
J'ai donc essayer dans la console de faire :
Franchement je ne comprend pas ...
Je suis ruby 1.9.2, Rails 3.1-RC5 (cependant j'ai essayé en RC4 -> RC1 sans résultat)
Depuis cette après midi je me rend compte que mon application ne tourne plus du point de vue de la session utilisateur.
En effet, il semble que la méthode find ne fasse plus de comparaison correcte.
Je m'explique, une fois logué, je met en session(cookie) le contenu d'un champ persistence_token de ma table de donnée.
Ainsi je retrouve mon utilisateur et ses infos par le biais de ce cookie.
# Auth de l'utilisateur.
def sign_in user
cookies.permanent[:persistence] = user.persistence_token
redirect_to root_path, :notice => "You've been signed in."
end
# Recup de l'utilisateur pour les vues et controlleurs.
def current_user
@current_user ||= User.find_by_persistence_token(cookies[:persistence])
end
Le problème est que le cookies contient bien ma chaine "persistence_token" mais que active_record ne semble pas retrouver l'utilisateur qui correspond.
J'ai donc essayer dans la console de faire :
User.where(:persistence_token => User.first.persistence_token)
=> [] # pas de résultat ce qui est illogique ...
u = User.find(1)
=> [USER informations]
u.persistence_token == User.find(1).persistence_token
=> true # Logique
User.where(:persistence_token =>u.persistence_token)
=> [] # Pas de résultat ...
Franchement je ne comprend pas ...
Je suis ruby 1.9.2, Rails 3.1-RC5 (cependant j'ai essayé en RC4 -> RC1 sans résultat)