如何将存储在数据库中的文件附加到动作邮件程序?

时间:2009-05-14 13:06:08

标签: ruby-on-rails actionmailer email-attachments

您提到了如何在数据库中存储文件。 如何使用动作邮件程序将这些文件与邮件附加? 我搜索了很多站点,但无法找到附加数据库文件的方法。 随处可以附加存储在文件系统中的文件的帮助。

1 个答案:

答案 0 :(得分:0)

与发送存储在磁盘上的附件没有什么不同。

假设您有一个与文件系统中的文件对应的模型Binary。如果它响应content_typedata,那么这样的事情应该有效:

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类(或您使用的任何类)的方法。

我希望这会有所帮助。