0

您提到了如何将文件存储在数据库中。如何使用 action mailer 将这些文件附加到邮件中?我搜索了许多站点,但找不到附加数据库文件的方法。到处都提供了附加存储在文件系统中的文件的帮助。

4

1 回答 1

0

这与发送存储在磁盘上的附件没有太大区别。

假设您有一个Binary与文件系统中的文件相对应的模型。如果它响应content_typeand 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上述示例中的类(或您使用的任何类)的方法。

我希望这有帮助。

于 2009-05-14T22:34:54.120 回答