我正在尝试实施多步骤注册过程。此特定实现涉及 OmniAuth,但出于本讨论的目的,它很可能是任何 OAuth 提供者。
以下是我们可能实施的注册步骤:
步骤 1.用户点击Connect with _ __ _ __ _ __。
步骤 2.通过_ __ _ __ _ __授权并重定向到回调。从提供者那里提取相关数据并保存到您的User
模型中。
第 3 步:选择用户名、填写电子邮件地址以及注册您的应用所需的任何其他数据。也将其保存到您的User
模型中。
对我来说,问题在于从第 2 步到第 3 步的过渡。例如,我可以根据状态设置数据验证,例如使用state_machine 之类的东西。
但是,对于某些基本数据片段,我必须在列级别删除非空约束,例如username
在我的情况下(用于用户路由),或者email
. 我不太愿意移除另一层数据完整性。
我确信这个问题之前已经解决了一千次。你是如何处理它的,你会建议我如何处理它?