8
votes

Objet actuel_utilisateur d'Authlogic dans les modèles

J'ai besoin de connaître l'identifiant de l'utilisateur actuel dans un modèle: xxx

mais je suppose que ce n'est pas comme ça que c'est fait?

Cordialement,

jacob


0 commentaires

3 Réponses :


1
votes

Ce n'est pas possible.
Le courant actuel repose sur la session, qui n'est pas disponible dans le modèle (et c'est normal. Les modèles sont indépendants de contexte).

Vous devez transmettre l'utilisateur au modèle sous forme de paramètre.


2 commentaires

Il est correct pour rester conforme MVC ... Bien sûr, il n'est pas techniquement pas correct. Cela ne signifie pas que c'est une bonne pratique.


Je voulais dire que dire "ce n'est pas possible" n'est pas correct. Je suis d'accord avec vous sur la mauvaise pratique.



15
votes

supposer que l'utilisateur est logedin, vous pouvez utiliser

usersessionsession.find.user

Vous voudrez peut-être ajouter des chèques pour vous assurer que usersession.find renvoie quelque chose avant d'appeler .User


3 commentaires

Le courant_utilisateur ne serait-il pas juste de soi? Si vous appelez actuelle_user.save quelque part dans le contrôleur, alors le: After_save: Quelque chose saura tout savoir sur l'utilisateur ... Sauf si un autre utilisateur ne peut répondre en tant qu'utilisateur actuel, vous n'avez pas vraiment besoin de la méthode "actuelle_user" que je suppose .. .


J'essayais juste de comprendre cela moi-même. Merci!


Cela permet aux méthodes de validation fantastiques telles que Mot de passe ne peut être modifiée que si User == utilisateur actuel



0
votes

Le meilleur moyen d'accéder à l'actuel_utilisateur dans le (s) modèle (s) lors de l'utilisation d'Authlogic utilise un utilisateur sensitaire - https: / /Github.com/bokmann/sentant_user Il y a une documentation complète sur la façon de l'utiliser.


0 commentaires