2017-07-15 85 views
0

我想使用導軌和設計創建多步驟註冊流程。使用導軌和設計的多階段註冊流程

第一步,訪問者可以註冊電子郵件,密碼和密碼確認。電子郵件地址需要驗證。

第二步,成功通過電子郵件驗證後,我想指示新用戶添加一個附加表單,要求他們添加用戶名和郵政編碼/郵政編碼。完成後,將用戶重定向到他們的個人資料。

任何人都可以幫助解釋如何可以用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

嗨亞歷克斯,我設置了一個可確認的選項設計。所以第1步很好。然而,第2步我很掙扎,因爲首先,新用戶只能被重定向到設置的下一個階段,選擇他的用戶名並提供郵政編碼。下一次該用戶登錄時,應該直接進入主頁。其次,用戶名和郵政編碼都是必需的,如果我直接向他們添加所需的,則步驟1失敗。我如何製作它,以便在步驟1完成後才需要它們? –

+0

用戶確認他的電子郵件後,他將在字段'user.confirmed_at'中有日期。所以,如果有日期 - 顯示此用戶的額外表格。假設,您還希望將其他字段添加到User模型,例如'user.form_filled_at' - 不要再次填寫表單。 – hedin

+0

在你的情況 - 你只有一個步驟 - 使用電子郵件確認用戶註冊。確認電子郵件後 - 您可以讓用戶在應用程序旁邊走動。但是在'application_controller.rb'中,你會得到一些東西,比如'before_action:user_filled_additional_form?',並且這個方法'user_filled_additional_form?'將總是將用戶重定向到表單填充'除非current_user.form_filled_at' – hedin