2012-10-28 62 views
0

我試圖實施多步註冊過程。這個特定的實現涉及OmniAuth,但爲了討論的目的,它可以是任何OAuth提供者。Rails:實施多步註冊過程(使用OmniAuth)

這是我們有可能實現的註冊步驟:

步驟1.用戶點擊連接與_ __ _ __ _ __

步驟2.授權經由_ __ _ __ _ __並重定向到回調。從提供者處提取相關數據並保存到您的User模型中。

第3步:選擇一個用戶名,填寫電子郵件地址,併爲您的應用程序註冊任何其他所需的數據。另存到您的User型號中。

對我來說,問題在於從第2步過渡到第3步。我可以在基於狀態的數據,使用類似state_machine,例如集驗證。

然而,我會在列級數據的某些基本部分,以除去非空約束,如在我的情況username(其用於用戶線路),或email。刪除另一層數據完整性我並不是很舒服。

我確信這個問題已經解決了上千次。你如何處理它,你會如何推薦我處理它?

+0

退房http://stackoverflow.com/questions/2917604/rails-multi-step-new-user-signup-form-fsm – Thilo

+0

@Thilo我見過那個截屏視頻,它不能解決我的問題非空約束,與state_machine相同,除非我錯過了某些東西。 –

回答

0

您可以從提供程序中將數據添加爲表單中的隱藏字段,以便選擇用戶名,電子郵件地址等?這樣,直到獲得所有數據之後,纔會創建User實例。

+0

爲了澄清,第2步並不是真正的形式,它只是在控制器內執行的代碼。我*可以*只是用一個GET請求來呈現數據,而不是保存它,但我不確定這是一個多麼棒的想法。 –