как прикрепить файлы, хранящиеся в базе данных, к почтовой программе действий? - PullRequest
0 голосов
/ 14 мая 2009

у вас есть упоминание о том, как хранить файлы в базе данных. Как прикрепить эти файлы к почте с помощью action mailer? У меня есть поиск по многим сайтам, но я не смог найти способ прикрепить файлы базы данных. Везде дается помощь в прикреплении файлов, хранящихся в файловой системе.

1 Ответ

0 голосов
/ 15 мая 2009

Это не очень отличается от отправки вложений, хранящихся на диске.

Скажем, у вас есть модель Binary, которая соответствует файлам в файловой системе. Если он отвечает на content_type и data, то что-то вроде этого должно работать:

class AttachmentMailer < ActionMailer::Base
  def attachment(recipient, binary)
    recipients recipient
    subject "Your requested file"
    from "example@example.com"

    attachment :content_type => binary.content_type, :body => binary.data
  end
end

# Wherever you want to e-mail something:
binary = Binary.find(:first)
Notifier.deliver_attachment("user@example.com", binary)

Конечно, если вы храните данные по-разному или столбцы базы данных имеют разные имена, вам следует настроить методы класса Binary (или любого другого класса, который вы используете) в приведенном выше примере.

Надеюсь, это поможет.

...