Rails:实现多步注册流程(使用OmniAuth)

时间:2012-10-28 21:15:29

标签: ruby-on-rails-3 omniauth state-machine

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

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

第1步。用户点击使用 _ __ _ __ _ <连接/ EM> __

第2步。通过 _ __ _ __ _ __ 进行授权,重定向到回调。从提供商处提取相关数据并保存到您的User模型。

第3步。选择用户名,填写电子邮件地址以及注册应用所需的任何其他所需数据。同时将其保存到User型号。

对我来说

问题在于从第2步到第3步的过渡。我可以根据状态设置数据验证,使用类似{{3}的内容例如。

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

我确信此问题已经解决了一千次。你是如何处理它的,你会如何推荐我处理它?<​​/ p>

1 个答案:

答案 0 :(得分:0)

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