【121日目】【1日20分のRailsチュートリアル】【第10章】アカウント有効化のためにUserモデルに属性を追加する
今日は「10.1.1 AccountActivationsリソース」のresources行を追加するところから。
10.1.1 AccountActivationsリソース
有効化メールでは以下の形式のURLを使用します。
edit_account_activation_url(activation_token, ...)
これは、editアクションへの名前付きルートが必要になるということです。そのためのresources行を追加します (リスト10.1)。
ほぅ…そうなのか。。。
よく分かってないけど下記を追加。
config/routes.rb
resources :account_activations, only: [:edit]
続いて、一意の有効化トークンがユーザー有効化に必要です。
パスワードのときと同じように有効化トークンを使えばいいってことかな。。。
- activation_digest
- activated
- activated_at
の3つの属性を追加。
$ rails generate migration add_activation_to_users activation_digest:string activated:boolean activated_at:datetime invoke active_record create db/migrate/20170313024742_add_activation_to_users.rb
admin 属性 (リスト9.50) の時と同様に、activated属性のデフォルトの論理値をfalseにします (リスト10.2)。
さっき生成したファイルを下記のように修正してマイグレーション実行。
db/migrate/[timestamp]_add_activation_to_users.rb
add_column :users, :activated, :boolean, default: false
$ bundle exec rake db:migrate == 20170313024742 AddActivationToUsers: migrating ============================= -- add_column(:users, :activation_digest, :string) -> 0.0006s -- add_column(:users, :activated, :boolean, {:default=>false}) -> 0.0035s -- add_column(:users, :activated_at, :datetime) -> 0.0004s == 20170313024742 AddActivationToUsers: migrated (0.0049s) ====================
まだ中途半端だけど今日はここまで。
今日の学習時間は【20分】。
次は「10.1.1 AccountActivationsリソース」のアカウントの有効化について考えるとこから。