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

时间:2014-05-29 04:13:39

标签: ruby-on-rails ruby-on-rails-4 devise

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

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

1 个答案:

答案 0 :(得分:4)

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

  • 覆盖send_reset_password_instructions方法:

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

    rails generate devise:views

您将在视图文件夹中获得邮件程序视图。

希望这会有所帮助:)