Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails回形针是否仅用于图像?_Ruby On Rails_Paperclip_Rails Activerecord_Attachment - Fatal编程技术网

Ruby on rails Rails回形针是否仅用于图像?

Ruby on rails Rails回形针是否仅用于图像?,ruby-on-rails,paperclip,rails-activerecord,attachment,Ruby On Rails,Paperclip,Rails Activerecord,Attachment,是否有用于管理与ActiveRecord连接的文件附件的rails库 我知道回形针,但它似乎主要适用于图像。他们确实在网上提到了音频和pdf文件,但没有进一步解释不同文件类型的用法。如果上传音频文件,像:style这样的属性将改变其含义。因此,不同的文件大小不会以二维分辨率表示,而是以比特率表示 有没有回形针的替代品?或者,是否可以将imagemagick与曲别针链接,例如ffmpeg?没有理由不能将曲别针用于其他类型的文件,但如果您需要其他文件,则不会出错。上述问题包含多个方面。所以我会试着一

是否有用于管理与ActiveRecord连接的文件附件的rails库

我知道回形针,但它似乎主要适用于图像。他们确实在网上提到了音频和pdf文件,但没有进一步解释不同文件类型的用法。如果上传音频文件,像
:style
这样的属性将改变其含义。因此,不同的文件大小不会以二维分辨率表示,而是以比特率表示


有没有回形针的替代品?或者,是否可以将imagemagick与曲别针链接,例如ffmpeg?

没有理由不能将曲别针用于其他类型的文件,但如果您需要其他文件,则不会出错。

上述问题包含多个方面。所以我会试着一一回答

回形针:处理器 可以将回形针用于图像以外的其他文件。您可以通过定义自定义导入操作。下面的代码显示了自定义处理器实现的最小结构。这可以通过自定义
选项
适应任何文件类型

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
模块回形针
类FileContents<处理器
def初始化文件,选项={},附件=nil
@file=file
@选项=选项
@instance=attachment.instance
@当前_格式=File.extname(attachment.instance.asset_文件名)
@basename=File.basename(@File.path,@current\u格式)
@呜呜声=选项[:呜呜声].nil?正确:选项[:呜呜声]
结束
def制造
开始
#您的导入代码(例如ocr或视频大小调整)。。。
@文件
营救标准错误=>e
raise papercliperor,“处理#{@basename}-#{e}”的文件内容时出错,如果@whiny
结束
结束
结束
结束
回形针和ffmpeg 有人已经为视频文件编写了回形针处理器。看一看gem,看看复杂的处理器是如何编写的

选择 以下是我发现的一些备选方案:

赞成和反对意见已经讨论过了