Ich entwickle eine kleine Anwendung zum Hochladen von einfachen Textdateien mit Paperclip. Ich habe eine Upload
Modell, das eine Dokumentenanlage hat. Ich möchte die hochgeladene Datei so umbenennen, dass sie dasselbe ist wie Upload.title
.
Ich habe dazu eine Paperclip-Interpolation verwendet.
#config/initializers/paperclip.rb
Paperclip.interpolates('upload_title') do |attachment, style|
attachment.instance.title.parameterize
end
#app/models/upload.rb
has_attached_file :document,
:url => "/:attachment/:id/:upload_title.:extension",
:path => ":rails_root/public/:attachment/:id/:upload_title.:extension"
Die Datei selbst wird jedoch umbenannt, aber die document_file_name
in der Datenbank bleibt so wie sie war.
Ich habe eine Test-App erstellt und auf Github hochgeladen aquí
Hier erstelle ich eine neue Upload
und fügen Sie die Datei " Original File Name.txt
"
garethrees.de/misc/new.JPG
Hier sehen Sie die neue Upload
erstellt, allerdings mit dem ursprünglichen Dateinamen.
garethrees.co.uk/misc/created.JPG
Und auch in der Datenbank, der document_file_name
bleibt, wie sie war.
garethrees.de/misc/db.JPG
Im eigentlichen Dateisystem ist das Dokument jedoch est umbenannt.
garethrees.de/misc/finder.JPG
Beide Datensätze müssen unbedingt übereinstimmen, da ich den Paperclip-Pfad verwenden muss, damit die Benutzer die Dateien herunterladen können.
Gracias