Это не очень отличается от отправки вложений, хранящихся на диске.
Скажем, у вас есть модель 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
(или любого другого класса, который вы используете) в приведенном выше примере.
Надеюсь, это поможет.