0

私のアプリケーションでは、現在、ユーザーを作成してセッションを開始し、電子メールアドレスに確認メールを送信する機能があります。これで十分ですが、もう少し高度なものにしたいと思います。

私がやりたいことは、ユーザーを作成してから、ユーザーが電子メールで確認する必要がある電子メールが送信されるようにすることです。電子メールの確認リンクをクリックすると、ユーザーはデータベースに登録され、ログインできるようになります。このリンクを作成機能に移動させたいと思います。

どうすればそうすることができますか?

現在のコードが必要な場合は、提供できます。

現在、コントローラー/作成にこれがあります:

def create @user = User.new(params[:user])

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

1 に答える 1

4

ユーザーをデータベースに保存するのを待つことは、Web が動作するステートレスな方法ではほとんど不可能なことですが、それができないわけではありません。

のような名前のユーザーテーブルに追加のフィールドを使用することをお勧めしますconfirmed。に初期化してからfalse、確認フォームでユーザーを検索しconfirmedて true に変更します。

これにより、ユーザーが自分自身を確認したかどうかをすばやく知ることができ、それを使用してログインを許可するかどうかなどの決定を下すことができます.

自分自身を確認しない人に関しては、5 日ごとに実行される rake タスクを作成し、resque_scheduler や cron ジョブなどを使用して、まだ自分自身を確認していないユーザーを削除します。

これがあなたの解決策の始まりであることを願っています。

于 2012-03-03T19:05:54.483 に答える