Sie haben erwähnt, wie Sie Dateien in der Datenbank speichern. Wie Sie diese Dateien mit Mail mit Action Mailer anhängen? Ich habe viele Seiten suchen, aber nicht in der Lage, den Weg zum Anhängen von Datenbankdateien zu finden. Überall wird die Hilfe zum Anhängen von Dateien im Dateisystem zur Verfügung gestellt.Wie hängt man Dateien, die in der Datenbank gespeichert sind, an den Action Mailer an?
0
A
Antwort
0
Es unterscheidet sich nicht sehr vom Senden von Anhängen auf der Festplatte.
Angenommen, Sie haben ein Modell Binary
, das Dateien im Dateisystem entspricht. Wenn es zu content_type
und data
antwortet, dann sollte in etwa so funktionieren:
class AttachmentMailer < ActionMailer::Base
def attachment(recipient, binary)
recipients recipient
subject "Your requested file"
from "[email protected]"
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("[email protected]", binary)
Natürlich, wenn Sie Ihre Daten speichern, anders oder wenn die Datenbankspalten anders benannt werden, sollten Sie die Methoden der Binary
Klasse anpassen (oder welche Klasse Sie verwenden) im obigen Beispiel.
Ich hoffe, das hilft.
danke molf. Sie haben mein Problem fast gelöst. die einzige verbleibende Sache ist: filename => binary.filename (# hier binary.filename bedeutet binäre Tabelle und Dateiname ist eine Spalte, die den Dateinamen speichert). So ist es gemacht! –