Ruby on rails RubyonRails设计Gem,从控制器指定电子邮件模板
我有一个从ApplicationController继承的控制器 在我发送重置密码指令的地方,有没有办法指定模板Ruby on rails RubyonRails设计Gem,从控制器指定电子邮件模板,ruby-on-rails,devise,Ruby On Rails,Devise,我有一个从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
@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
正如您在上面的代码片段中看到的,@user.designe\u mailer.reset\u password\u指令(@user.deliver)
发送重置密码指令,但它采用默认的电子邮件模板,我不想更改。我需要创建另一个模板并指定如何使用它然后创建您自己的邮件程序。有关详细信息,请参阅。一旦您在控制器中有了新邮件程序,而不是:
@user.devise_mailer.reset_password_instructions(@user).deliver
你可以这样做:
YourMailer.reset_password_instructions(@user).deliver
您可能希望在邮件中重复使用部分Desive:请查看Desive源:
您可以尝试的另一件事是重新定义designe模板,方法是将名为app/views/designe/mailer/reset\u password\u instructions.html.erb
的文件放在应用程序目录中。当然,您也可以基于设计源来实现: