使用 Devise 时是否可以从重置密码页面获取用户对象?

Is it possible to get the user object from the reset password page when using Devise?

我想在重置密码页面中显示用户的电子邮件,但我不确定默认情况下是否可以访问该对象。

edit_password_url(@resource, :reset_password_token => @token, email: @resource&.email)

我添加了电子邮件参数,这适用于点击 link 的用户,但已发送的带有重置密码 link 的电子邮件将没有此参数。

您拥有 @token,它对每个用户都是唯一的。这意味着您可以通过他们的重置密码令牌找到用户。有很多方法可以做到这一点,但假设您的模型是 User,您可以:

@token = params[:reset_password_token] # the token from the URL
@resource = User.find_by_reset_password_token(@token)
@email = @resource&.email