重设密码
生成 PasswordResets 控制器
bin/rails generate controller PasswordResets new edit --no-test-framework
修改路由
resources :password_resets, only: [:new, :create, :edit, :update]
添加两个属性:reset_digest 和reset_sent_at
bin/rails generate migration add_reset_to_users reset_digest:string reset_sent_at:datetime
bin/rails db:migrate
请求重设密码页面:app/views/password_resets/new.html.erb
预览重设密码邮件:test/mailers/previews/user_mailer_preview.rb
PasswordResets 控制器的 edit 动作
编辑 app/controllers/password_resets_controller.rb
更新密码要考虑 4 种情况
- 密码重设请求已过期
- 填写的新密码无效,更新失败
- 没有填写密码和密码确认,更新失败(看起来像是成功了)
- 成功更新密码