0
0

More than 3 years have passed since last update.

11.1 AccountActivationsリソース: Railsチュートリアル備忘録 - 第11章

Posted at

11.1 AccountActivationsリソース

11.1.1 AccountActivationsコントローラ

ルーティングで使用するresoucesonlyで限定的に使用できる

  resources :account_activations, only: [:edit]

演習

表 11.2の名前付きルートでは、_pathではなく_urlを使うように記してあります。なぜでしょうか? 考えてみましょう。ヒント: 私達はこれからメールで名前付きルートを使います。

サーバーの外からアクセスできるパス(URL)でないと行けないのでフルパスである必要がある
_pathが返すルート相対パスや、相対パスでは駄目

pathヘルパー(_path)が返すのは相対パス?絶対パス?: Railsチュートリアル備忘録 - Qiita

11.1.2 AccountActivationのデータモデル

3つの属性をUserモデルに追加

$ rails generate migration add_activation_to_users \
> activation_digest:string activated:boolean activated_at:datetime

activatedは初期値でfalse付与

class AddActivationToUsers < ActiveRecord::Migration[6.0]
  def change
    add_column :users, :activation_digest, :string
    add_column :users, :activated, :boolean, default: false # 初期値false
    add_column :users, :activated_at, :datetime
  end
end

before_createで事前にactivation_tokenactivation_digest属性を付与するメソッドを呼び出す

before_create :create_activation_digest
        def create_activation_digest
      self.activation_token  = User.new_token
      self.activation_digest = User.digest(activation_token)
    end

activation_tokenはモデルにない属性なので
attr_accessorが必要

attr_accessor :remember_token, :activation_token # 一行で書ける

attr_accessorが必要な理由と、不要な理由(Railsさんありがとう): Railsチュートリアル備忘録 - 9章 - Qiita

サンプルユーザとfixtureを有効化しておく

$ rails test > (GREEN)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0