2 votes

Comment enregistrer des données temporaires pour les utilisateurs anonymes dans Rails ?

Par exemple, si un utilisateur anonyme clique sur le bouton "J'aime", il sera redirigé vers une page de connexion ; l'utilisateur peut choisir de s'inscrire ou de se connecter, dans les deux cas, le serveur se souviendra de son action pour que l'utilisateur n'ait pas à cliquer à nouveau. Les données doivent être détruites 10 minutes après leur création.

Comment puis-je mettre cela en œuvre ?

3voto

Beerlington Points 25012

J'utiliserais sessions pour stocker les données temporaires.

3voto

Chris Heald Points 28814

En gros, vous voulez juste sérier une liste de choses à faire une fois qu'ils ont créé un compte. Vous pouvez stocker cette liste dans une session, un cache persistant comme memcached (bien que la persistance ne soit pas garantie), ou un modèle/table personnalisé. Il n'y a pas vraiment de façon unique de faire cela dans Rails, donc c'est à vous de voir comment vous l'implémentez.

Ce que vous pourriez faire, si vous voulez vous en tenir à la façon de faire de Rails, c'est définir un fichier transient sur un enregistrement, puis enregistrez-le. Une fois que l'utilisateur s'est enregistré, vous pouvez supprimer l'indicateur transitoire. Exécutez une tâche cron qui détruit tous les enregistrements transitoires de plus de 10 minutes, et tous vos callbacks before_destroy devraient être exécutés pour vous permettre de revenir sur les changements d'état qu'ils ont causés. C'est une solution "lourde", mais elle est facile à mettre en œuvre et vous permet d'exploiter facilement les modèles de Rails.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X