在 Rails Devise gem 中如何修改 send_reset_password_instructions 方法?

THp*_*ubs 1 ruby-on-rails devise ruby-on-rails-4

我想修改该send_reset_password_instructions方法,以便我可以通过它向 url 发送一些额外的参数。然后我可以在 url 中读取该参数,如果它存在,我将以不同的方式设置视图(和邮件程序)的样式。

我真正需要做的是发送重置密码而不是确认电子邮件。我已经让我的应用程序发送重置密码而不是确认,但现在我需要编辑邮件程序和视图以使其不同。我怎样才能做到这一点?

小智 6

好的,所以你的问题有两个部分。

  • 重写send_reset_password_instructions方法:

    1. 访问Devise Github 页面并找到该方法的定义位置。
    2. 在您自己的应用程序文件夹中创建一个具有相同名称和相对路径的文件。例如:Devise 有这个 helper app/mailers/devise/mailer.rb,如果你想覆盖它,你可以在你自己的app目录中创建相同的。
    3. 复制方法并根据需要覆盖。设计将自动拾取文件。
  • 编辑视图/邮件程序:您只需要运行以下命令:

    rails generate devise:views

您将在您的视图文件夹中看到邮件视图。

希望这可以帮助 :)