У меня есть форма, где внутренний пользователь может запросить отправку информационных материалов клиенту. Когда форма отправляется, она отправляет электронное письмо лицу, ответственному за физическую рассылку материалов клиенту.ActionMailer-access Mail :: Содержимое сообщения или инициализация вручную в контроллере?
Теперь я хочу зафиксировать содержимое сообщения электронной почты, чтобы добавить примечание на страницу показа клиента, и я не уверен, как это сделать.
Один из вариантов я смотрел на это, чтобы использовать after_filter
в MaterialsRequestMailer
, но называть message.body
возвращают большую строку с путем больше текста, чем мне нужно, и я хочу, чтобы избежать добавлений кучи разборе логики, чтобы получить содержание сообщения ,
В принципе, я хочу, что генерируется шаблоном views/materials_request_mailer/send_request_notification.text.erb
. Я просмотрел http://www.rubydoc.info/github/mikel/mail/Mail/Message и не могу найти метод для возврата только отображаемого содержимого шаблона. Есть ли способ сделать это?
Если нет, можно ли вручную инициализировать View
в контроллере, где у меня уже есть переменные экземпляра, которые я передаю почтовому отправителю? Это не идеальное решение, потому что я использую DelayedJob
, и код для добавления заметки будет запущен до отправки фактического сообщения электронной почты. Кроме того, из-за DelayedJob
кажется, что я не могу напрямую получить доступ к почтовому объекту из контроллера (если я делаю mail = MaterialsRequestMailer.delay.send_request_notification(...)
, он присваивает экземпляр Delayed::Backend::ActiveRecord::Job
до mail
).