Rails不会将我带到“重置密码”表单,而是不断地重定向我

时间:2019-06-23 17:30:01

标签: ruby-on-rails ruby

我正在遵循Michael Hartl的Ruby教程指南,并且正在学习第12课:密码重置表格。

我的问题是在本地测试时,不会带我进入“重置密码”表格。我在日志中看到它是TRIES TO,但是最终将我重定向到主页(“ /”根目录)。我不知道为什么要这样做,因为我正在学习本教程。但是它可以在生产中使用!如果有人想看看,我有整个GitHub存储库here

我已经验证我的routes.rb是正确的,因为我看到使用rake rails的密码重置URL。我还验证了它确实是 将我重定向到/,就像在服务器日志中一样:

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

0 个答案:

没有答案