我正在开发一个 Rails 应用程序,用户必须填写两个或更多屏幕才能注册。注册数据分布在两个表中的两个或三个记录中。
当然,用户可以在注册完成之前退出。这可以检测为必填列中的空条目。
在合理的延迟(几个小时)之后清理这些部分完成的注册的“Rails 方式”是什么?
如果它有所作为,我将部署在 Heroku 上。
我正在开发一个 Rails 应用程序,用户必须填写两个或更多屏幕才能注册。注册数据分布在两个表中的两个或三个记录中。
当然,用户可以在注册完成之前退出。这可以检测为必填列中的空条目。
在合理的延迟(几个小时)之后清理这些部分完成的注册的“Rails 方式”是什么?
如果它有所作为,我将部署在 Heroku 上。
我不知道这是否是“rails 方式”,但我认为创建一个 rake 任务并通过cron 作业定期运行它可能足以满足您的描述。如果您正在进行测试,您甚至可以像测试任何其他代码一样测试 rake 任务。
您是否考虑过为“进行中”用户设置一个单独的表?然后将其切碎并在完成后将其散布。
update_at
然后,您只需删除正在进行的表中超过一天的任何内容,就可以清理被遗弃的用户;运行 rake 任务的每日 cron 作业(或调度程序或......)可以解决这个问题。这也可以防止他们在完成之前登录,因为他们在完成之前并不是真正的用户。
作为副作用,他们在完成之前将无法登录,因为他们在完成之前不是真正的用户。当然,您可能需要current_user
在一个控制器内调整您的处理方式。
这种方法还意味着您可以将 NOT NULL 约束添加到强制列中,作为额外的偏执狂。