2012-03-03 12 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

ユーザーをデータベースに保存するのを待っているのは、ウェブが動作するステートレスな方法ではほとんど不可能なことですが、実行できないということではありません。

confirmedのように、ユーザーの表に余分なフィールドを使用することをおすすめします。 falseに初期化してから、確認フォームにユーザーを検索してconfirmedをtrueに変更します。

これは、ユーザーが自分自身を確認していますし、あなたは彼らがログインを許可されているかどうかのような意思決定を行うためにそれを使用できる場合はすぐに教えてくれできるようになります。

themeselvesを確認したことがない人の面では、次のように記述rakeタスクは5日ごとに実行され、resque_schedulerやcronジョブのようなものを使って自分自身をまだ確認していないユーザーを削除します。

これはあなたのソリューションの始まりです。

+0

乾杯、私はデバイスのようなものを使用することに興味がなく、むしろ最初からそれをするだろう。確認可能な機能を実行する方法を示すリンクがありますか?私はレールが初めてであるため、認証の面で多くを知らない。 – user1222136

関連する問題