ruby-on-rails - Rails 不会把我带到重置密码表单,不断地重定向我
问题描述
我正在关注 Michael Hartl 的 Ruby 教程指南,并且正在学习第 12 课:密码重置表单。
我的问题是在本地测试时,它不会带我进入重置密码表单。我可以在我的日志中看到它尝试,但最终将我重定向到主页(“/”根)。我不知道为什么它会这样做,因为我正在按照教程进行操作。但它在生产中有效!如果有人想看一下,我在这里有整个 GitHub 存储库。
当我routes.rb
看到密码重置 URL 使用rake rails
. 我还验证了它确实将我重定向到 / ,因为它在服务器日志中:
Started GET "/password_resets/D7-YG1GP-RNkdVJFp4PwjQ/edit?email=jessica@example.com" for 127.0.0.1 at 2019-06-23 13:13:20 -0400
Processing by PasswordResetsController#edit as HTML
Parameters: {"email"=>"jessica@example.com", "id"=>"D7-YG1GP-RNkdVJFp4PwjQ"}
User Load (1.0ms) SELECT "users".* FROM "users" WHERE "users"."email" = ? LIMIT ? [["email", "jessica@example.com"], ["LIMIT", 1]]
↳ app/controllers/password_resets_controller.rb:45
Redirected to http://0.0.0.0:3000/
Filter chain halted as :valid_user rendered or redirected
Completed 302 Found in 2ms (ActiveRecord: 1.0ms)
看起来罪魁祸首是valid_user
功能,但对我来说看起来不错。基本上,用户需要存在于数据库中、被激活并使用令牌进行身份验证。否则,您将被重定向。
# Confirms a valid user.
def valid_user
unless (@user && @user.activated? &&
@user.authenticated?(:reset, params[:id]))
redirect_to root_url
end
end
解决方案
推荐阅读
- c - 在子程序中使用/不使用 return 有什么区别?
- r - 在 dplyr mutate 中取领先和滞后日期的平均值
- sql - 在 Join (SQL) 中使用替换函数
- sql-server - 防止按 NULL 值对行进行分组
- typescript - 开玩笑 - spyOn 没有代码覆盖实际实现
- python - Keras 错误:图形无法按拓扑顺序排序
- javascript - Hybris 1811 SmartEdit Loader 一直在加载
- java - 嵌套异常是 java.lang.IllegalArgumentException:参数值 [2020-04-20] 与预期类型不匹配 [java.util.Date (n/a)]]
- eclipse - eclipse中的Scala安装
- r - 在 R 的 geom_line 中添加标签