我想要达到的目标是: 1.用户按下按钮并启动限时表格。 2.定时器启动。 3.在计时器达到0并且用户未完成表单的X时间之后,rails在数据库中创建记录并执行一些会话清理操作(Model.create和session.delete)。
如果用户启动表单然后变得不可用(关闭web浏览器或关闭PC),此计时器将像安全措施一样工作。
你能指出我正确的方向吗?我应该从哪里开始?我应该使用什么语言/框架来做到这一点?答案 0 :(得分:0)
您可以使用时间戳记录发生的事情。 Rails已在updated_at
和created_at
字段中提供了一个很好的示例。
当用户第一次开始填写表单时,您可以重复使用此概念,可能是在资源的new
路径上,这通常与表单的开头一致。
至于执行清理,你有两个选项甚至可以一起工作,具体取决于具体情况:
除了这些建议之外,我们还必须了解您的用例以了解更多问题。
还有更多选项 - 您可以更精细或更安全地运行任务。
如果你的时间非常紧张(低至秒),一个选项是实现上述两个选项,此外还有以下功能:
before_filter
中,可能在ApplicationController
中,首先检查他们是否有权继续操作,即时间戳还没有过期。如果时间戳已过期,并且尚未执行清理,则立即执行。 这种方法的局限性: