我正在开发一个Rails应用程序,用户必须填写两个或更多屏幕进行注册。注册数据分布在两个表中的两个或三个记录中。
当然,用户可以在注册完成之前纾困。这可以作为必填列中的空条目检测到。
在一段合理的延迟(几个小时)之后清理这些部分完整的注册的“Rails方式”是什么?
如果它有所作为,我正在Heroku上部署。
答案 0 :(得分:2)
我不知道它是否是“轨道方式”,但我认为创建一个rake任务并通过cron job定期运行它可能就足够了你描述的内容。如果您正在进行测试,您甚至可以像其他任何代码一样test the rake tasks。
答案 1 :(得分:2)
您是否考虑过为#34;正在进行中的单独表格"用户?然后将它们剁碎并在它们完成后将其展开。
然后,您只需删除正在进行中的表格中任何超过一天update_at
的内容,即可清理已弃用的用户;运行rake任务的每日cron作业(或调度程序或...)可以处理这个问题。这也会阻止他们登录,直到他们完成为止,直到他们完成用户为止。
作为副作用,他们无法登录,直到他们完成,因为他们不是真正的用户,直到他们完成。您可能需要在一个控制器内部调整current_user
处理。
这种方法还意味着您可以将NOT NULL约束添加到必填列中作为额外的偏执程度。