Ruby on rails I';我正在编写Micheal Hartls Rail教程,我使用了相同的代码,但得到了不同的结果

Ruby on rails I';我正在编写Micheal Hartls Rail教程,我使用了相同的代码,但得到了不同的结果,ruby-on-rails,passwords,reset,Ruby On Rails,Passwords,Reset,我正在编写Micheal Hartls Rail教程第12.3章,我使用了与书中所写代码相同的代码,但代码呈现的是主页,而不是编辑表单 edit.html.erb 重置密码 app/controllers/password_resets_controller.rb 在\u操作之前:获取\u用户,仅:[:编辑,:更新] 在\u操作之前:有效的\u用户,仅:[:编辑,:更新] 定义编辑 结束 私有的 def get_用户 @user=user.find_by(email:params[:email]

我正在编写Micheal Hartls Rail教程第12.3章,我使用了与书中所写代码相同的代码,但代码呈现的是主页,而不是编辑表单

edit.html.erb
重置密码
app/controllers/password_resets_controller.rb
在\u操作之前:获取\u用户,仅:[:编辑,:更新]
在\u操作之前:有效的\u用户,仅:[:编辑,:更新]
定义编辑
结束
私有的
def get_用户
@user=user.find_by(email:params[:email])
结束
#确认有效用户。
def有效用户
除非(@user&&@user.activated)&&
@用户身份验证?(:重置,参数[:id]))
将\u重定向到根\u url
结束
结束
[![有了这些代码并将链接粘贴到我的浏览器上,我应该得到这个表单,但我得到的是主页][1][1]
[1]: https://i.stack.imgur.com/kikkF.png

不幸的是,我没有足够的声誉来写评论,我将使用答案表

    # Confirms a valid user.
    def valid_user
      unless (@user && @user.activated? &&
              @user.authenticated?(:reset, params[:id]))
        redirect_to root_url
      end
    end
部分代码验证1。用户状态,2。用户激活,3。用户的重置令牌写入数据库,以确认它是有效的密码重置请求。 如果这些验证中的任何一个失败-您的控制器正在将请求重定向到根url

我的建议是双重检查您的用户是否已激活帐户,这意味着在尝试重置用户密码之前单击激活链接

希望有帮助,谢谢

    # Confirms a valid user.
    def valid_user
      unless (@user && @user.activated? &&
              @user.authenticated?(:reset, params[:id]))
        redirect_to root_url
      end
    end