suggestions pour le flux de travail back-end Rails pour nettoyer les pièces jointes aux brouillons abandonnés?

StackOverflow https://stackoverflow.com/questions/5385719

Question

Je travaille sur une application Rails. Deux de mes modèles sont des notes et des pièces jointes. L'utilisateur peut créer des notes et y ajouter des pièces jointes. C'est un truc standard et je l'ai déjà bien fonctionné.

Actuellement, l'utilisateur doit créer une note avant de pouvoir y ajouter des pièces jointes. Je cherche à mettre en œuvre un flux de travail plus rationalisé pour l'utilisateur, similaire au flux de travail de messagerie habituel où vous pouvez ajouter des pièces jointes à un courrier électronique non enregistré. Cependant, la clé est que je ne veux pas que l'utilisateur doive même enregistrer un brouillon de la note avant que la pièce jointe puisse être ajoutée, et je veux que cette note non enregistrée soit abandonnée si l'utilisateur s'éloigne (je ne veux pas pour avoir la complexité supplémentaire des notes non enregistrées / non publiées).

Je sais que lorsque la note n'a pas encore été enregistrée initialement, je peux créer les pièces jointes sans le lien vers la note, puis établir le lien lorsque la note est enregistrée. La partie sur laquelle je dessine un blanc est de savoir comment supprimer les pièces jointes inutilisées si l'utilisateur interrompt le processus de création de notes? Y a-t-il un hook qui me manque qui me permet de voir que l'utilisateur s'est rompu?

Sans un tel hook, la première solution qui me vient à l'esprit est un script de nettoyage nocturne qui s'exécute via cron qui trouverait toutes les pièces jointes non attachées et les supprimerait (peut-être en filtrant par les pièces jointes qui ont été créées il y a plus de 24 heures) . Est-ce la meilleure solution?

Était-ce utile?

La solution

Il n'y a vraiment aucun type de déclencheur pour vous indiquer quand les nettoyer, car un utilisateur peut simplement quitter le site sans "se déconnecter" ou une autre action.Cela vous laisse donc un travail d'arrière-plan non lié à l'action de l'utilisateur.Dans votre cas, je pense qu'un cron nocturne est simple et agréable et conviendrait bien à cette situation.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top