Schreibe Stream in Büroklammer

7

Ich möchte empfangene E-Mail-Anhänge unter Verwendung von Büroklammern speichern. Von E-Mail bekomme ich part.body und ich habe keine Ahnung, wie man es in ein Büroklammermodell bringt. Momentan erstelle ich eine temporäre Datei und schreibe port.body dazu, speichere diese Datei in Büroklammer und lösche die Datei. Hier ist, wie ich es mit der temporären Datei mache:

%Vor%

: asset ist mein 'has_attached_file'-Feld. Gibt es eine Möglichkeit, die Erstellung von Dateien wegzulassen und so etwas zu tun:: asset = & gt; part.body in Asset.new?

    
Mateusz 02.03.2011, 11:24
quelle

5 Antworten

19

So würde ich es tun, vorausgesetzt, Sie verwenden das Mail-Juwel , um die E-Mail zu lesen. Sie werden die ganze E-Mail "Teil" brauchen, nicht nur part.body

%Vor%

Verwenden Sie jetzt einfach das Dateiobjekt, um es in der Paperclip-Zuordnung zu speichern.

%Vor%

Hoffe, das hilft.

    
David Barlow 04.03.2011, 00:47
quelle
7

Barlows Antwort ist gut, aber es ist effektiv, die StringIO-Klasse zu manipulieren. In meinem Fall arbeitete ich mit Mechanize :: Download # body_io und ich wollte die Klasse möglicherweise nicht verschmutzen, was zu unerwarteten Fehlern führte, die weit entfernt in der App auftauchten. Also definiere ich die Methoden in der Instanzen-Metaklasse wie folgt:

%Vor%     
gtd 25.08.2012 18:28
quelle
5

Ich mag die Antwort von gtd sehr, aber es kann einfacher sein.

%Vor%

Es ist nicht wirklich notwendig, die "Metaklasse" in eine lokale Variable zu extrahieren, sondern einfach eine Klasse an das Objekt anzuhängen.

    
Corey Woodcox 22.05.2013 17:13
quelle
2

Ab Ruby 1.9 können Sie StringIO und define_singleton_method:

verwenden %Vor%     
Gauthier Monserand 24.05.2016 07:49
quelle
-1

Ich benutzte eine ähnliche Technik, um Bilder in Büroklammer zu ziehen

Das sollte funktionieren, aber es wird nicht getestet:

%Vor%

Wenn wir das IO direkt der Paperclip-Instanz zuweisen, muss es einen .original_file_name haben, also tun wir das in der zweiten Zeile.

    
Jesse Wolgamott 02.03.2011 16:02
quelle

Tags und Links