0

我正在开发一个 Rails 应用程序,用户必须填写两个或更多屏幕才能注册。注册数据分布在两个表中的两个或三个记录中。

当然,用户可以在注册完成之前退出。这可以检测为必填列中的空条目。

在合理的延迟(几个小时)之后清理这些部分完成的注册的“Rails 方式”是什么?

如果它有所作为,我将部署在 Heroku 上。

4

2 回答 2

2

我不知道这是否是“rails 方式”,但我认为创建一个 rake 任务并通过cron 作业定期运行它可能足以满足您的描述。如果您正在进行测试,您甚至可以像测试任何其他代码一样测试 rake 任务。

于 2012-08-13T04:04:18.220 回答
2

您是否考虑过为“进行中”用户设置一个单独的表?然后将其切碎并在完成后将其散布。

update_at然后,您只需删除正在进行的表中超过一天的任何内容,就可以清理被遗弃的用户;运行 rake 任务的每日 cron 作业(或调度程序或......)可以解决这个问题。这也可以防止他们在完成之前登录,因为他们在完成之前并不是真正的用户。

作为副作用,他们在完成之前将无法登录,因为他们在完成之前不是真正的用户。当然,您可能需要current_user在一个控制器内调整您的处理方式。

这种方法还意味着您可以将 NOT NULL 约束添加到强制列中,作为额外的偏执狂。

于 2012-08-13T04:15:02.763 回答