Ожидание сохранения пользователя в базе данных - почти невозможная вещь, связанная с тем, как работает сеть, но это не значит, что это невозможно.
Я бы рекомендовал использовать дополнительное поле в вашей пользовательской таблице, которое называется что-то вроде confirmed
. Инициализируйте его на false
, а затем на форме подтверждения просто найдите пользователя и измените confirmed
на true.
Это позволит вам быстро определить, подтвердил ли пользователь себя, и использовать его для принятия решения, например, разрешено ли ему входить в систему.
Что касается людей, которые никогда не подтверждают тему, вы пишете задание на рейк, которое запускается каждые 5 дней или около того, и просто удаляете всех пользователей, которые еще не подтвердили себя, используя что-то вроде resque_scheduler или задания cron.
Надеюсь, это начало вашего решения.