предложения по внутреннему рабочему процессу Rails для очистки вложений к заброшенным черновикам?

Я работаю над приложением Rails. Две мои модели — это заметки и вложения. Пользователь может создавать заметки и добавлять к ним вложения. Это стандартные вещи, и у меня это уже работает нормально.

В настоящее время пользователь должен создать заметку, прежде чем он сможет добавлять к ней вложения. Я хочу реализовать более оптимизированный рабочий процесс для пользователя, аналогичный знакомому рабочему процессу электронной почты, где вы можете добавлять вложения в несохраненное электронное письмо. Однако суть в том, что я не хочу, чтобы пользователю даже приходилось сохранять черновик заметки, прежде чем можно будет добавить вложение, и я хочу, чтобы эта несохраненная заметка была удалена, если пользователь уходит (я не хочу, чтобы иметь дополнительную сложность несохраненных/неопубликованных заметок).

Я знаю, что если заметка изначально еще не сохранена, я могу создать вложения без ссылки на заметку, а затем установить ссылку при сохранении заметки. Часть, на которой я рисую пробел, заключается в том, как удалить неиспользуемые вложения, если пользователь прерывает процесс создания заметки? Есть ли крючок, который мне не хватает, который позволяет мне видеть, что пользователь прервался?

Без такого хука первое решение, которое приходит на ум, — это сценарий ночной очистки, который запускается через cron и находит все неприкрепленные вложения и удаляет их (возможно, фильтруя вложения, созданные более 24 часов назад). Это лучшее решение?


person JoshB    schedule 22.03.2011    source источник


Ответы (1)


На самом деле нет никакого триггера, чтобы вы знали, когда их очистить, поскольку пользователь может просто покинуть сайт без «выхода из системы» или каких-либо других действий. Таким образом, у вас остается фоновая работа, не связанная с действиями пользователя. В вашем случае я думаю, что ночной cron хорош и прост и хорошо подходит для этой ситуации.

person ctcherry    schedule 22.03.2011