加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何运行rails设计方法edit_password_url手动

发布时间:2020-12-17 03:40:34 所属栏目:百科 来源:网络整理
导读:我们有一个用户,其邮件提供商似乎阻止了我们发送密码重置电子邮件的帐户. 我想从irb运行reset-password-URL,然后手动邮寄.我似乎无法弄清楚如何运行这个东西“edit_password_url”或它存在的地方或它定义的范围. 有关如何在irb中手动为用户生成重置密码网址
我们有一个用户,其邮件提供商似乎阻止了我们发送密码重置电子邮件的帐户.

我想从irb运行reset-password-URL,然后手动邮寄.我似乎无法弄清楚如何运行这个东西“edit_password_url”或它存在的地方或它定义的范围.

有关如何在irb中手动为用户生成重置密码网址的任何提示?

解决方法

您可以通过控制台完成一些工作.这是我接近它的方式:

在终端中启动rails console:

$rails c

我查看了devise mailer视图,看看它正在调用什么来创建重置密码URL:

<p><%= link_to 'Change my password',edit_password_url(@resource,:reset_password_token => @token) %></p>

此代码中的@resource是您的用户,而@token是他们的重置密码令牌

通过ID,电子邮件或其他方式查找您的用户.然后找到他们的重置密码令牌:

u = User.find(1)
token = u.reset_password_token

要访问视图,您需要创建一个ActionView :: Base实例

view = ActionView::Base.new

然后我尝试访问url帮助程序,但设计抱怨

NoMethodError: undefined method `main_app' for #<ActionView::Base>

所以我必须在控制台中输入一个方法来修复该错误(见this):

def main_app
  Rails.application.class.routes.url_helpers
end

根据您是否在您所在的rails控制台环境中正确配置了邮件程序,您可能会遇到以下错误:host param未设置.要避免这种情况,您只需调用_path而不是_url.现在你可以调用url helper并传递你为user和token设置的变量:

edit_password_path(u,:reset_password_token => token)

=> /users/password/edit?reset_password_token=123

简短的回答是,您需要找到他们的reset_password_token并将其附加到此URL:

http://yourdomain.com/users/password/edit?reset_password_token=<password-token-here>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读