Carreirwave - Wie man den Versionsnamen direkt aus dem gespeicherten Dateinamen erstellt

9

Ich erstelle ein Miniaturbild für die Dateien, die in meiner App hochgeladen wurden. Die Bildnamen haben einen Zeitstempel-Code in ihnen. Wenn ich recreate_versions verwende, enthält das generierte Thumb-Image auch den Zeitstempel, aber es verwendet den aktuellen Zeitstempel, der den Namen des Thumb-Bildes vom ursprünglichen Dateinamen unterscheidet.

Ich dachte mir also, ein Fix wäre ein benutzerdefinierter Dateiname für das Thumb Image. Im Grunde haben 'thumb_' + 'originaler Dateiname'.

%Vor%

Dies schien eine einfache Lösung zu sein, aber wenn ich recreate_versions ausführe, wird das Thumb Image mit dem aktuellen Timestamp erzeugt, nicht der Timestamp im Namen des ursprünglichen Dateinamens. Von dem, was ich verstehe, sollte es den Wert in der DB gespeichert, die den rohen Dateinamen ist, und fügen Sie es an das Ende von "thumb_". Aber irgendwie ändert es den Zeitstempel im Namen.

%Vor%

Ich dachte, dass def full_filename nicht ausgeführt wird, aber wenn ich es in etwas anderes ändere, wird der gespeicherte Dateiname der Datei in def full_filename geändert.

Ich bin mir nicht sicher, was hier vor sich geht. Hoffentlich kann jemand helfen. Wenn es so aussieht, als ob es funktionieren sollte, lass es mich bitte wissen, zumindest wird das klarstellen, dass es etwas sein könnte, das ich nicht ansehe.

    
Rob 19.09.2016, 10:24
quelle

2 Antworten

1

Nachdem Sie die generierte URL verwendet haben und slice! in der URL verwendet haben, müssen Sie nur den Image-Namen beibehalten.

%Vor%     
Rob 22.09.2016, 06:25
quelle
0

Ich verstehe nicht, warum Sie instance_variable_get und set verwenden. Warum nicht einfach die Item s created_at verwenden? Dann wird es sich nie ändern.

%Vor%     
Benjamin 21.09.2016 19:04
quelle