2012-03-03 58 views
0

在我的應用程序中,我目前有能力創建一個用戶,然後 開始一個會話並向電子郵件地址發送電子郵件確認。雖然這一切都很好,但我希望讓它更進一步 。在創建之前確認用戶

我希望做的是有創建的用戶的能力,然後 的電子郵件被髮送,要求用戶通過電子郵件來驗證。 一旦他們點擊電子郵件,然後在用戶註冊到 數據庫的確認鏈接,然後能夠登錄。我想這個鏈接去創建功能。

我怎麼會去這樣做呢?

如果需要我當前的代碼,然後我可以提供。

我有這在我的控制器/創建的時刻:

DEF創建 @user = User.new(PARAMS [:用戶])

respond_to do |format| 
    if @user.save 
    Notifier.user_created(@user).deliver 
    session[:user_id] = @user.id 
    format.html { redirect_to @user, notice: 'User was successfully created.' } 
    format.json { render json: @user, status: :created, location: @user } 
    else 
    format.html { render action: "new" } 
    format.json { render json: @user.errors, status: :unprocessable_entity } 
    end 
end 
end 

感謝。

回答

4

等待用戶保存到數據庫中是做的無狀態的方式。然而,該網站在運作,這並不意味着它不能做一個幾乎不可能的事情。

我建議你在你的user表中使用額外的領域,被稱爲像confirmed。有它初始化爲false,然後還要確認表簡單地查找用戶和更改confirmed爲true。

這將允許你快速判斷一個用戶已經確認自己和你可以用它來製作像他們是否被允許登錄的決定。

在人們而言誰沒有確認themeselves,你寫一個每5天左右運行一次的rake任務,並使用諸如resque_scheduler或cron job之類的東西刪除尚未確認自己的用戶。

希望這是一個開始新的解決方案。

+0

歡呼聲中,我在使用類似的設備不感興趣,寧願從頭開始做。你有什麼鏈接可以告訴我如何做可確認的功能嗎?我是rails新手,因此對認證方面知之甚少。 – user1222136 2012-03-03 20:25:36