〜アカウントの有効化〜にコメントおはようございます。アカウントの有効化についてまとめてみました。最後まで見ていってください。アカウント有効化の意義アカウントの有効化を実装することで登録されたメールアドレスは本当にそのユーザーのものなのかが確認できるようになります。初期登録が行われた時に有効化トークンとそれに対応する有効化ダイジェストを作成する有効化ダイジェストはDBに保存しておき、有効化トークンはユーザーに送信するメールに仕込んでおくユーザーがメールアドレスのリンクをクリックしたら、メールアドレスをキーにトークンとダイジェストを比較し認証する以上の流れになります。有効化トークン、ダイジェストの作成まず、最初にControllerの作成を行います。AccountActivationこれでControllerの作成は完了です。ユーザーがメールアドレスのリンクをクリックして有効化をする際、次のurlが含まれます。edit_account_activaton_url(activation_token)ですので、先に名前付きルートを作成します。仮想化した属性を使いハッシュ化した文字列をDBに保存していきます。activated属性で論理値を取るようにします。以上を踏まえて次のコマンドを実行します。db:migrateこれで変更が反映されました。続いて、ユーザーが作成される前に有効化トークン、ダイジェストが作成されるようにbefore_createメソッドを設定します。before_saveが保存される直前に実行されるのに対してこちらは作成される直前に実行されます。gで簡単に作成できます。password_resetpassword_resetは12章で使います。次にテンプレートビューをカスタマイズします。activation"end</u>end有効化トークンをメールに仕込むパスワードだったら入力してそれをrailsがダイジェストに変換して認証を行なっていました。今回はURLをクリックするだけです。URLに何かしらの工夫をしなければなりません。URLには認証のためのトークンとユーザーを見つけ出すためのメールアドレスを仕込みます。%>これによって発行されるURLは以下のようになります。account_activations/q5lt38hQDc_959PVoo6b7A/edit?email=foo%40example.com次にcreateアクションを変更して新規登録時にメールが送信されるようにします。'new'endendアカウントの有効化これからaccount_activations_controllerのeditアクションを書いていきますが、その前にauthenticated?の文多少変更します。現在のauthenticatedメソッドはこちらです。remember_digest.nil?BCrypt::Password.new(remember_digest).is_password?(remember_token)endこのままだとremember_tokennしか引数として受け取れませんのでここを変数に変える必要があります。これにはsendメソッドを使います。sendメソッドは渡されたオブジェクトにメッセージを送ることによって呼び出すメソッドを動的にすることができます。digest.nil?BCrypt::Password.new(digest).is_password?(token)endこれでeditアクションを呼び出す準備が整いました。root_urlendendend以上で、アカウント有効化の大まかな手順の説明は終わります。ありがとうございました。~パスワードリセット~コメントを残すコメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。WordPress.。