0

我正在尝试实施多步骤注册过程。此特定实现涉及 OmniAuth,但出于本讨论的目的,它很可能是任何 OAuth 提供者。

以下是我们可能实施的注册步骤:

步骤 1.用户点击Connect with _ __ _ __ _ __

步骤 2.通过_ __ _ __ _ __授权并重定向到回调。从提供者那里提取相关数据并保存到您的User模型中。

第 3 步:选择用户名、填写电子邮件地址以及注册您的应用所需的任何其他数据。也将其保存到您的User模型中。

对我来说,问题在于从第 2 步到第 3 步的过渡。例如,我可以根据状态设置数据验证,例如使用state_machine 之类的东西。

但是,对于某些基本数据片段,我必须在列级别删除非空约束,例如username在我的情况下(用于用户路由),或者email. 我不太愿意移除另一层数据完整性。

我确信这个问题之前已经解决了一千次。你是如何处理它的,你会建议我如何处理它?

4

1 回答 1

0

您能否将来自提供商的数据添加为表单中的隐藏字段,以便第 3 步选择用户名、电子邮件地址等?这样,在您拥有所有可用数据之前,您不会创建User实例。

于 2012-10-28T23:18:58.403 回答