Ruby on rails 在方法中更改邮件器布局

Ruby on rails 在方法中更改邮件器布局,ruby-on-rails,actionmailer,Ruby On Rails,Actionmailer,如何在邮件程序中的方法中更改电子邮件的总体布局 尝试基本上做到这一点: class AccountMailer < ActionMailer::Base layout 'mailer' def reset_password(user) layout 'simple_mailer' end end class AccountMailer

如何在邮件程序中的方法中更改电子邮件的总体布局

尝试基本上做到这一点:

class AccountMailer < ActionMailer::Base
  layout 'mailer'

  def reset_password(user)
    layout 'simple_mailer'
  end
end
class AccountMailer
但这是一个错误

基本上,我在
/app/views/layouts/simple_mailer.html.erb
中有一个我想使用的布局,但只有一个方法


我正在运行Rails 4.2。

这是对您问题的回答。只需在
呈现
方法中指定
:布局
选项。

邮件
方法可以获取在format对象中传递的块

class MyMailer < ApplicationMailer
  layout 'mailer'
  def password_reset(user)
   # uses the "mailer" layout
  end

  def special
    mail(to: "whomever") do |format|
      format.html { render(layout: false) } # no layout is used
      format.text # use the special.text.erb like normal
    end
  end
end
classmymailer
您可以将其他选项传递给邮件块,并指定要使用的布局,如下所示:

  class AccountMailer < ActionMailer::Base
    layout 'mailer'

    def reset_password(user)
      mail(to: 'test@gmail.com', subject: 'Sample Mail', from: "<test@gmail.com>") do |format|
        format.html { render layout: 'path_to/other_mailer_layout' }
      end
    end  
  end
class AccountMailer