Railsチュートリアル:11章(わからないとこメモです)


第11章アカウントの有効化

有効化用のリンクにアクセスして有効化のステータスを変更する部分では、RESTのルールに従うとPATCHリクエストとupdateアクションになるべきです (表 7.1)。しかし、有効化リンクはメールでユーザーに送られることを思い出してください。ユーザーがこのリンクをクリックすれば、それはブラウザで普通にクリックしたときと同じであり、その場合ブラウザから発行されるのは (updateアクションで使うPATCHリクエストではなく) GETリクエストになってしまいます。このため、ユーザーからのGETリクエストを受けるために、(本来であればupdateのところを) editアクションに変更して使っていきます。

なるほど

11.1 AccountActivationsリソース

11.1.2 AccountActivationのデータモデル

オブジェクトが作成されたときだけコールバックを呼び出したいのです。それ以外のときには呼び出したくないのです。そこでbefore_createコールバックが必要になります。

↑before_saveとはきちんと違いを整理する。「作成されたときだけ」なのでcreate

before_create :create_activation_digest

上のコードはメソッド参照と呼ばれる

create_activation_digestメソッド自体はUserモデル内でしか使わないので、外部に公開する必要はありません。7.3.2のときと同じようにprivateキーワードを指定して、このメソッドをRuby流に隠蔽


private

  def create_activation_digest
    # 有効化トークンとダイジェストを作成および代入する
  end

11.2 アカウント有効化のメール送信

11.2.1 送信メールのテンプレート

mailer関係を作成

rails generate mailer UserMailer account_activation password_reset

生成したメイラーごとに、ビューのテンプレートが2つずつ生成されます。1つはテキストメール用のテンプレート、1つはHTMLメール用のテンプレートです。

↑テキスト用とHTMLメール用。さすが。

11.2.2 送信メールのプレビュー

11.2.3 送信メールのテスト

11.2.4 ユーザーのcreateアクションを更新

まあ完全に意味不明

11.3 アカウントを有効化する

11.3.1 authenticated?メソッドの抽象化

もうここまできていよいよ理解ができない。

 トークンがダイジェストと一致したらtrueを返す

↑わからん単語とわからん単語が一致したらtrue、どういうこと?みたいな状況

テスト成功するところでも成功しない。
もうお決まりになってきたw

11.3.2 editアクションで有効化

11.3.3 有効化のテストとリファクタリング

やばいくらいわからん

11.4 本番環境でのメール送信

herokuのクレジットカードはやめといて二周目にしよう。。。

よって、最後のとこで下のようにでます。。。

ec2-user:~/environment/sample_app (master) $ heroku addons:create sendgrid:starter
Creating sendgrid:starter on  stark-reaches-53742... !
     Please verify your account to install this add-on plan (please enter a credit card) For more information, see
     https://devcenter.heroku.com/categories/billing Verify now at https://heroku.com/verify

気にせずいこう。