如何在Rails 5.1中发送不带模板的多部分电子邮件?

时间:2018-11-19 19:06:45

标签: ruby-on-rails email actionmailer

在Rails 4.2和5.0中,我的Mailer中的这段代码非常适合发送不带模板文件的多部分电子邮件(整个电子邮件正文都已传入):

mail(to: recipient, from: from, subject: subject) do |format|
  format.html { render html: html_body.html_safe } unless html_body.blank?
  format.text { render text: text_body }
end

但是,在Rails 5.1中,这会产生ActionView::MissingTemplate错误。

5.1的ActionMailer Guide表示要在body:方法中使用mail()参数,以便在没有模板的情况下发送电子邮件。 Sending Multipart Emails部分说:“如果您对同一操作使用不同的模板,则Action Mailer将自动发送多部分电子邮件。”

那么您怎么同时做这两个呢?也就是说,当同时存在html和纯文本部分时,如何构造mail(to: recipient, from: from, subject: subject, body: email_body)的email_body部分?

更新: 我可以通过将变量更改为@html_body和@text_body并添加仅显示以下内容的模板文件来解决此问题: <%= @html_body %><%= @text_body %>

0 个答案:

没有答案