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

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

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

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

  • 覆盖send_reset_password_instructions方法:

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

    rails generate devise:views

您将在视图文件夹中拥有邮件程序视图。

希望这可以帮助 :)