【问题标题】:Ruby-on-Rails: Devise reset-password stopped working, where is the source for this?Ruby-on-Rails:设计重置密码停止工作,这个来源在哪里?
【发布时间】:2014-04-21 09:05:01
【问题描述】:

我正在尝试修复一个使用 Ruby-on-Rails 实现的网站,该网站使用 Devise 进行身份验证。我注意到“向我发送重置密码说明”按钮似乎没有任何作用。或者至少,如果它正在发送一封电子邮件 - 我没有收到它。我在 SO 上找到了一个关于此的 Q,它列出了来自 Devise (Devise::PasswordsController) 的源代码:但我搜索了这个项目并且看不到任何设计课程代码!

所以我的问题是:Devise 是否需要您下载源代码并构建它 - 以便访问源代码进行调试?或者,源头是否可能隐藏在某个地方?

我的平台是 Ubuntu x64,使用 devise 3.0.3 和 rails 3.2.13。

谢谢你的帮助,jh。

【问题讨论】:

    标签: ruby-on-rails ruby devise passwords reset


    【解决方案1】:

    您可以使用

    找到 gem 在您的机器上的位置
    bundle show devise
    

    假设您正在使用捆绑程序。

    如果您愿意,您可以在代码中提供的位置插入调试器语句以尝试查看发生了什么。也许在 Vitalyp 建议的密码控制器中。

    你也可以解压源码并单独浏览

    gem unpack devise
    

    这将在您运行该命令的位置创建一个 devise-3.0.3 文件夹。如果你想使用 --target=DIR 作为参数,你可以指定一个位置。

    【讨论】:

    • 谢谢 dano,是的 - 这确实指出了设计代码的位置,因此我找到了 passwords_controller.rb 但我无法确定应该执行什么代码来重置密码。它确实包含受保护的方法 after_resetting_password_path_for 和 after_sending_reset_password_instructions_path_for。 ???
    【解决方案2】:

    Devise 是一个典型的 Rails Engine,它安装在 Gem-way 中。无需制作和建造。

    到 Devise::PasswordsController 的 Github 链接: https://github.com/plataformatec/devise/blob/master/app/controllers/devise/passwords_controller.rb

    在您的应用程序中,查看文件 app/views/devise/shared/_links.html.haml 可能有链接。

    【讨论】:

    • 谢谢 Vitalyp,我确实看到了 _links.erb,但我仍然找不到处理重置密码功能的代码。
    猜你喜欢
    • 2014-04-24
    • 2012-08-29
    • 2016-01-06
    • 2017-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-01
    • 1970-01-01
    相关资源
    最近更新 更多