AccountActivations 控制器
生成 AccountActivations 控制器
bin/rails generate controller AccountActivations
添加路由
resources :account_activations, only: [:edit]
在 User 模型中添加一个布尔值属性 activated,使用自动生成的布尔值方法检查用户是否已经激活
把 activated 属性的默认值设为 false
bin/rails generate migration add_activation_to_users activation_digest:string activated:boolean activated_at:datetime
bin/rails db:migrate
邮件程序模板
与模型和控制器类似,可以使用 rails generate 命令生成邮件程序
生成 User 邮件程序
bin/rails generate mailer UserMailer account_activation password_reset
编辑邮件模板
编辑 test/mailers/previews/user_mailer_preview.rb,预览邮件
更新 Users 控制器的 create 动作
在注册过程中添加账户激活步骤,编辑app/controllers/users_controller.rb
编辑 app/models/user.rb, 修改通用的 authenticated? 方法
编写激活账户的 edit 动作
编辑 app/controllers/account_activations_controller.rb,在 edit 动作中激活账户
编辑 app/controllers/sessions_controller.rb,禁止未激活的用户登录