マルチステップの登録プロセスを実装しようとしています。この特定の実装には OmniAuth が含まれますが、この説明の目的上、任意の OAuth プロバイダーである可能性があります。
実装する可能性のある登録手順は次のとおりです。
ステップ 1.ユーザーはConnect with _ __ _ __ _ __をクリックします。
ステップ 2. _ _ _ __ _ __経由で承認し、コールバックにリダイレクトします。プロバイダーから関連データを取得し、User
モデルに保存します。
ステップ 3.ユーザー名を選択し、電子メール アドレスを入力し、アプリの登録に必要なその他のデータを入力します。User
これもモデルに保存します。
私にとっての問題は、ステップ 2 からステップ 3 への移行にあります。たとえば、 state_machineなどを使用して、状態に基づいてデータの検証を設定できます。
ただしusername
、 (ユーザー ルートに使用される) 私の場合のように、特定の重要なデータの列レベルで非 null 制約を削除する必要がありますemail
。私は、データ整合性の別のレイヤーを削除することにあまり自信がありません。
この問題は、これまでに何千回も解決されてきたと確信しています。どのように処理しましたか? また、どのように処理することをお勧めしますか?