0

マルチステップの登録プロセスを実装しようとしています。この特定の実装には OmniAuth が含まれますが、この説明の目的上、任意の OAuth プロバイダーである可能性があります。

実装する可能性のある登録手順は次のとおりです。

ステップ 1.ユーザーはConnect with _ __ _ __ _ __をクリックします。

ステップ 2. _ _ _ __ _ __経由で承認し、コールバックにリダイレクトします。プロバイダーから関連データを取得し、Userモデルに保存します。

ステップ 3.ユーザー名を選択し、電子メール アドレスを入力し、アプリの登録に必要なその他のデータを入力します。Userこれもモデルに保存します。

私にとっての問題は、ステップ 2 からステップ 3 への移行にあります。たとえば、 state_machineなどを使用して、状態に基づいてデータの検証を設定できます。

ただしusername、 (ユーザー ルートに使用される) 私の場合のように、特定の重要なデータの列レベルで非 null 制約を削除する必要がありますemail。私は、データ整合性の別のレイヤーを削除することにあまり自信がありません。

この問題は、これまでに何千回も解決されてきたと確信しています。どのように処理しましたか? また、どのように処理することをお勧めしますか?

4

1 に答える 1

0

ステップ 3 でユーザー名やメールアドレスなどを選択するために、プロバイダーからのデータをフォームの非表示フィールドとして追加できますか? この方法Userでは、すべてのデータが利用可能になるまでインスタンスを作成しません。

于 2012-10-28T23:18:58.403 に答える