Die Frage des OP war, wie Dateien zu verarbeiten, die keine Bilder sind.
Bitte sehen Sie sich diese Quelldatei auf GitHub an: carrierwave/lib/carrierwave/uploader/processing.rb und überprüfen Sie die Kommentare.
Sie werden Ihre eigenen CarrierWave Uploader Unterklasse haben erstellen und montieren Sie ihn in Ihrem Modell wie folgt aus:
def MyModel < ActiveRecord::Base
# this is where the uploaded file will be available in your model,
# as a `MyUploader` instance:
#
mount_uploader :uploaded_file, MyUploader
...
end
Bitte beachten Sie, dass es :uploaded_file
auf dem Active Attribut angebracht ist. Das bedeutet, wenn Sie von Ihrem Modell aus auf :uploaded_file
zugreifen, erhalten Sie eine Instanz Ihres CarrierWave-Uploaders für die bestimmte Datei, die hochgeladen wurde.
Sie können einfach Ihre Verarbeitung in Ihrem Uploader wie folgt definieren:
class MyUploader < CarrierWave:Uploader::Base
process :my_custom_processing => [param1,param2,param3]
def my_custom_processing(param1,param2,param3)
...
# e.g. you could call a method which is defined elsewhere,
# which operates on a file:
my_nifty_file_processor(self.uploaded_file)
#
# or you could just do this directly:
uploaded_data = self.uploaded_file.read
...
end
end
Innen my_nifty_file_processor
Sie einfach read
auf das Objekt aufrufen würde, die in übergeben wird, die Datei zu lesen.
Mit CarrierWave können Sie read
auf einer beliebigen Uploader-Instanz aufrufen (= jede Instanz einer hochgeladenen Datei) und diese Datei lesen.
Ein weiterer Tipp:
Manchmal müssen Sie in Ihrem Uploader das Active Modell zugreifen können, für die die Datei hochgeladen wurde.
einfach zugreifen es in Ihrem Uploader Code wie folgt:
self.model
Auf diese Weise können Sie speichern zusätzliche Informationen über die hochgeladene Datei, wie Format, direkt in Ihrem AR-Modell.
Diese URL ist nicht mehr verfügbar :( – peanut
Richtig, ich habe es hierher verschoben: http://blog.prograils.com/post/46154701464/video-encoding-processor-for-carrierwave –
der aktualisierte Link nicht arbeiten Sie entweder ... – scientiffic