【问题标题】:Ruby on Rails Devise Gem, specify email template from a controllerRuby on Rails Devise Gem,从控制器指定电子邮件模板
【发布时间】:2012-05-24 09:08:44
【问题描述】:

我有一个继承自 ApplicationController 的控制器 我在哪里发送重置密码指令,有没有办法指定模板?

@user=User.find_by_email(email);
if @user.nil?
  render :status=>404, :json=>{:message=>"User not found or email format is invalid."}
  return
else
  @user.devise_mailer.reset_password_instructions(@user).deliver
  render :status=>200, :json=>{:message=>"Reset password instructions have been sent."}
end

正如你在上面的 sn-p 中看到的,@user.devise_mailer.reset_password_instructions(@user).deliver 发送重置密码说明,但它需要默认的电子邮件模板,我不想更改。我需要创建另一个模板并以某种方式指定使用它

【问题讨论】:

    标签: ruby-on-rails devise


    【解决方案1】:

    然后创建您自己的邮件程序。有关详细信息,请参阅http://guides.rubyonrails.org/action_mailer_basics.html。一旦你有一个新的邮件,在控制器中,而不是:

    @user.devise_mailer.reset_password_instructions(@user).deliver
    

    你会做这样的事情:

    YourMailer.reset_password_instructions(@user).deliver
    

    您可能希望在邮件中重复使用 Devise 的某些部分:请查看相关的设计资源:https://github.com/plataformatec/devise/blob/master/lib/devise/mailers/helpers.rb

    您可以尝试的另一件事是通过将名为app/views/devise/mailer/reset_password_instructions.html.erb 的文件放在您的应用程序目录中来重新定义设计模板。当然,您也可以将您的实现基于设计源:https://github.com/plataformatec/devise/blob/master/app/views/devise/mailer/reset_password_instructions.html.erb

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-30
      • 1970-01-01
      • 2011-05-15
      相关资源
      最近更新 更多