ruby-on-rails – 如何运行rails设计方法edit_password_url手动
我们有一个用户,其邮件提供商似乎阻止了我们发送密码重置电子邮件的帐户.
我想从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> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |