《Ruby on Rails 教程》第 12 章

321 阅读1分钟

重设密码

生成 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 种情况

  1. 密码重设请求已过期
  2. 填写的新密码无效,更新失败
  3. 没有填写密码和密码确认,更新失败(看起来像是成功了)
  4. 成功更新密码

Git 提交记录