2009-05-14 7 views

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.

+0

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! –