Скрепка :: NotIdentifiedByImageMagickError изображение не распознается командой «идентифицировать» - PullRequest
0 голосов
/ 16 августа 2011

Я получаю эту ошибку при редактировании модели, особенно когда я удаляю изображение, связанное с ней, и выбираю другое:

Paperclip::NotIdentifiedByImageMagickError in Admin/packsController#update

Chrysanthemumprueba4.jpg is not recognized by the 'identify' command.

C:/Users/.../vendor/plugins/thoughtbot-paperclip-fc792c8/lib/paperclip/geometry.rb:24:in `from_file'

Но когда я создаю новый пакет и выбираю для него изображения, он работает нормально.

У меня есть две таблицы: packs и pack_images, и pack_images содержит фотографии для связанного пакета, вот отношения:

class Pack < ActiveRecord::Base
  has_many :pack_images, :dependent => :destroy
end

class PackImage < ActiveRecord::Base
  belongs_to :pack
  attr_accessor :height, :width

  has_attached_file :photo, :url => "/:attachment/:class/:id/:style_:basename.:extension", :styles => {:principal => "240x240>", :original => "400x400>", ...}

end

Это действие контроллера, которое выдает мне ошибку:

def update
    @pack = Pack.find(params[:id])
    @pack.pack_products

    unless params[:pack][:pack_images_attributes].nil?
      params[:pack][:pack_images_attributes].count.times do |i|
        unless params[:pack][:pack_images_attributes][:"#{i.to_s}"][:photo].blank?
          file = params[:pack][:pack_images_attributes][:"#{i.to_s}"][:photo]
          dimensions = Paperclip::Geometry.from_file(file)
          @pack.pack_images[i].width = dimensions.width              
          @pack.pack_images[i].height = dimensions.height
        end
      end
    end

  respond_to do |format|
  @pack.update_attributes(params[:pack])
  format.html { redirect_to(admin_pack_path(@pack.id), :notice => 'Pack updated') }

end

Я заметил, что при обновлении я получаю меньше параметров (только имя фотографии), чем при создании (имя фотографии, тип файла, ширина, высота и т. Д.).

Я надеюсь, что вы можете мне помочь

Большое спасибо

Ответы [ 5 ]

2 голосов
/ 05 июня 2013

раньше он нормально работал для pdf и изображений, пробовал около часа, следовал всему, что я гуглил позже, проблема была найдена в моей модели has_attached_file :attachment,

:styles => {:original=> "125x125#"} 

пришлось прокомментировать эту строку, и она работала для других вложений, таких как docx или odt и т.д ..

так в вашем случае :styles => {:principal => "240x240>", :original => "400x400>"} проверить и прокомментировать.

1 голос
/ 18 ноября 2015

Одной из причин возникновения этой ошибки является попытка определить размеры несуществующего изображения:

Скрепка :: Geometry.from_file (nil)

Эта команда будет зависать и вызывать эту ошибку.

1 голос
/ 16 августа 2011

Найдите путь к команде идентификации следующим образом:

$ which identify

Для меня приведенная выше команда напечатает это: /usr/local/bin/identify

Добавьте это в некоторый файл инициализатора:

Paperclip::Attachment.default_options[:command_path] = "/usr/local/bin"
0 голосов
/ 20 октября 2013

У меня была точно такая же проблема.Windows 8 64bit, Rails 4, ImageMagick-6.8.7-1-Q16-x64-static.exe.Сделайте это: В корне вашего приложения rails (из Git Bash)

$ which identify
/c/Program Files/ImageMagick-6.8.7-Q16/./identify

Тогда

$ cd "/c/Program Files/ImageMagick-6.8.7-Q16"

Не забывайте цитаты.Скопируйте все исполняемые файлы в каталог / bin.Я действительно скопировал все эти файлы, чтобы быть уверенным.

$ cp * /bin

И вуаля скрепка работает!

0 голосов
/ 16 августа 2011

Попробуйте запустить команду «определить» из ImageMagick на этом изображении.Кажется, что-то с вашей установкой ImageMagick.

...