2017-07-15 6 views
0

railsとdeviseを使用して複数ステップのサインアップ手順を作成したいと考えています。レールとデバイスを使用した複数ステージのサインアッププロセス

ステップ1では、訪問者は電子メール、パスワード、パスワードの確認でサインアップできます。メールアドレスを確認する必要があります。

ステップ2、電子メールの検証が成功したら、新しいユーザーにユーザー名と郵便番号/郵便番号を追加する追加のフォームを指示します。これが完了したら、ユーザーをプロフィールにリダイレクトします。

これはDeviseでどのように行うことができますか?または私が従うことができるチュートリアルもあります。

答えて

1

工夫を読み取るための

おかげで、このため:confirmableフラグがあります。

# models/user.rb 
devise :registerable, :confirmable 

また、あなたがモデルにこのフィールドを追加が必要になります。

# db/migrate/XXXXXXX_devise_migration.rb 
# Confirmable 
t.string :confirmation_token 
t.datetime :confirmed_at 
t.datetime :confirmation_sent_at 
t.string :unconfirmed_email # Only if using reconfirmable 

詳細については、工夫のドキュメントのthis sectionをお読みください。

+0

こんにちはアレックス、私は確認可能なオプションでセットアップDeviseを持っています。だからステップ1はいいです。しかし、ステップ2では、まず新しいユーザーは、ユーザー名を選択して郵便番号を入力するために、設定の次の段階にリダイレクトする必要があるため、苦労しています。次回ユーザーがログインすると、すぐにホームページに移動する必要があります。第二に、ユーザー名と郵便番号の両方が必要です。私がそれらを直ちに追加する必要がある場合は、ステップ1が失敗します。ステップ1が完了した後にのみ必要となるようにするにはどうすればよいですか? –

+0

ユーザは自分のメールを確認した後、 'user.confirmed_at'フィールドに日付を設定します。そのため、このユーザーの日付 - 追加のフォームがある場合。また、 'user.form_filled_at'のようなUserモデルに他のフィールドを追加して、再度フォームの入力を要求しないと仮定します。 – hedin

+0

あなたのケースでは、唯一のステップユーザー登録が電子メールの確認を持っています。電子メールが確認された後 - あなたはあなたのユーザーがアプリケーションの隣に行くことを許可します。しかし、 'application_controller.rb'には' before_action:user_filled_additional_form? 'のようなものがあり、このメソッド 'user_filled_additional_form?'は、常にcurrent_user.form_filled_atがなければ – hedin

関連する問題