Are there any rails libraries for managing file attachments connected with ActiveRecord?
I know paperclip, but it seems suitable for images primarily. They inde
There's no reason you couldn't use Paperclip for other types of files, but if you want an alternative you can't go wrong with CarrierWave.
The question above contains more than one facette. So I'll try to answer them all one-by-one.
It is possible to use paperclip for other files than images. You can define custom import actions by subclassing Paperclip::Processor. The following code shows a minimal structure of a custom processor implementation. This can be adapted to any file type with custom options
.
module Paperclip
class FileContents < Processor
def initialize file, options = {}, attachment = nil
@file = file
@options = options
@instance = attachment.instance
@current_format = File.extname(attachment.instance.asset_file_name)
@basename = File.basename(@file.path, @current_format)
@whiny = options[:whiny].nil? ? true : options[:whiny]
end
def make
begin
# your import code (e.g. ocr or video resizing)...
@file
rescue StandardError => e
raise PaperclipError, "There was an error processing the file contents for #{@basename} - #{e}" if @whiny
end
end
end
end
Someone wrote a paperclip processor for video files already. Have a look at the source of paperclip-ffmpeg gem to see how complex processors are written.
Here are some alternatives I found:
Pro and Cons are already discussed here on stackoverflow.