Rails - ActionMailer - Как отправить вложение, которое вы создали? - PullRequest
18 голосов
/ 28 февраля 2011

В rails3 w ActionMailer я хочу отправить файл .txt. Проблема в том, что этот текстовый файл не существует, но я хочу создать текстовый файл, учитывая большой блок текста, который у меня есть.

возможно? Идеи? Спасибо

1 Ответ

50 голосов
/ 28 февраля 2011

Это описано для файлов в документации API ActionMailer :: Base

class ApplicationMailer < ActionMailer::Base
  def welcome(recipient)
    attachments['free_book.pdf'] = File.read('path/to/file.pdf')
    mail(:to => recipient, :subject => "New account information")
  end
end

Но это не обязательно файл, это тоже может быть строка. Так что вы можете сделать что-то вроде (я также использую более длинную форму на основе хэша, где вы также можете указать свой собственный mimetype, вы можете найти документацию для этого в ActionMailer :: Base # attachments ):

class ApplicationMailer < ActionMailer::Base
  def welcome(recipient)
    attachments['filename.jpg'] = {:mime_type => 'application/mymimetype',
                                   :content => some_string }
    mail(:to => recipient, :subject => "New account information")
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...