Как отправить составную электронную почту без шаблона в Rails 5.1? - PullRequest
0 голосов
/ 19 ноября 2018

В Rails 4.2 и 5.0 этот код в моей почтовой программе хорошо работал для отправки электронной почты, состоящей из нескольких частей, без файлов шаблонов (передается все тело письма):

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.

В Руководстве по ActionMailer для 5.1 говорится об использовании параметра body: в методе mail() для отправки электронной почты без шаблона.А в разделе Отправка составных писем написано: «Action Mailer автоматически отправит составные письма, если у вас есть разные шаблоны для одного и того же действия».

Итак, как вы делаете оба?то есть, как вы создаете часть email_body в mail(to: recipient, from: from, subject: subject, body: email_body), когда есть и HTML, и текстовые части?

Обновление: Я могу обойти эту проблему, изменив переменные на @html_body и@text_body, и добавьте файлы шаблонов, которые просто говорят: <%= @html_body %> и <%= @text_body %>.

...