ruby-on-rails – 未找到回形针文件错误

我刚从一个纸夹轨道插件切换到一个回形针宝石.该项目是一个rails 2.3应用程序,我正在使用纸夹2.7.2宝石.

我得到以下奇怪的错误:

identify: unable to open image `file': No such file or directory @ error/blob.c/OpenBlob/2617.
identify: no decode delegate for this image format `file' @ error/constitute.c/ReadImage/544.

看起来像回形针正在寻找一个名为“文件”的文件,但我不知道为什么.我没有改变任何我们以前的代码.它曾经工作,我所做的只是升级到更新的版本,并使用一个插件上的宝石.

有任何想法吗?

更新

它是纸夹中的错误,它不能正确解析命令的内容.我深入到剪贴画源中找到:

def run(cmd, arguments = "", local_options = {})
  if options[:image_magick_path]
    Paperclip.log("[DEPRECATION] :image_magick_path is deprecated and will be removed. Use :command_path instead")
  end
  command_path = options[:command_path] || options[:image_magick_path]
  Cocaine::CommandLine.path = [Cocaine::CommandLine.path, command_path].flatten.compact.uniq
  local_options = local_options.merge(:logger => logger) if logging? && (options[:log_command] || local_options[:log_command])

  Cocaine::CommandLine.new(cmd, arguments, local_options).run
end

# Uses ImageMagick to determing the dimensions of a file, passed in as either a
# File or path.
# NOTE: (race cond) Do not reassign the 'file' variable inside this method as it is likely to be
# a Tempfile object, which would be eligible for file deletion when no longer referenced.
def self.from_file file
  file_path = file.respond_to?(:path) ? file.path : file
  raise(Paperclip::NotIdentifiedByImageMagickError.new("Cannot find the geometry of a file with a blank name")) if file_path.blank?
  geometry = begin
               Paperclip.run("identify", "-format %wx%h :file", :file => "#{file_path}[0]")
             rescue Cocaine::ExitStatusError
               ""
             rescue Cocaine::CommandNotFoundError => e
               raise Paperclip::CommandNotFoundError.new("Could not run the `identify` command. Please install ImageMagick.")
             end
  parse(geometry) ||
    raise(NotIdentifiedByImageMagickError.new("#{file_path} is not recognized by the 'identify' command."))
end

由于某些原因,Paperclip.run命令无法替换:file占位符.我通过在命令行上运行以下命令验证了这一点:

identify :file

猴子手工修补替代品会产生类似事情发生的其他错误.

好的,我设法解决了.

这是可卡因的一个问题.似乎回卷纸依赖于可卡因,只能说它可以是Cociane> 0.02.最新版本的Cocaine 0.4.2(在撰写本文时)有一个不向后兼容的新API.你需要降级到可卡因0.3.2.

简单地把它放在你的宝石文件中:

gem "cocaine", "0.3.2"
翻译自:https://stackoverflow.com/questions/13056932/paperclip-file-not-found-error

转载注明原文:ruby-on-rails – 未找到回形针文件错误