Ho appena passato da un plugin per graffette a graffetta a una gemma a graffetta. Il progetto è un'applicazione di rail 2.3 e sto usando paperclip 2.7.2 gem.Errore file non trovato Paperclip
sto ottenendo il seguente errore strano:
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.
sembra graffetta è alla ricerca di un file chiamato 'file', ma non sono sicuro perché. Non ho cambiato nulla del codice che avevamo prima. Ha funzionato, tutto ciò che ho fatto è stato l'aggiornamento a una versione più recente e utilizzare una gemma su un plugin.
Qualche idea?
Aggiornamento
Si tratta di un problema in graffetta in cui non analizza il contenuto del comando in modo corretto. Ho scavato in profondità nella sorgente di graffetta per trovare:
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
e
# 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
Il comando Paperclip.run non riesce a sostituire il: file di segnaposto per qualche motivo. Ho verificato eseguendo il seguente sulla riga di comando:
identify :file
scimmia patch la sostituzione con rendimenti mano altri errori in cui una cosa simile accade.
L'uomo, è stato salvato il giorno per me :) – emilsw
Anziché specificare la cocaina nel vostro Gemfile, è possibile imbattersi la versione 2.7.4 di graffetta per fissare anche questo. – Peter
ottimo ragazzo! :) – user566245