Rails 3 & Paperclip: "не распознается командой" определить ""

Несколько системных деталей:

  • Mac OS X Lion 10.7.2, Rails 3, скрепка для бумаг.
  • ImageMagick 6.7.3-0, двоичные файлы, установленные с использованием MacPorts в /opt/local/bin,
  • Использование WEBrick в среде разработки.

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

Routing Error
No route matches "[file_URL]"

Перед этим при загрузке действительного файла PNG я вижу эту ошибку в моем журнале WEBrick:

[paperclip] An error was received while processing: #<Paperclip::NotIdentifiedByImageMagickError: /var/folders/n4/62q22gb52rjd0h13cx_j8vv40000gq/T/stream20111020-24984-17560xt-0.png is not recognized by the 'identify' command.>

дела which identify выходы:

/opt/local/bin/identify

призвание identify с путем к загруженному файлу правильно идентифицирует файл как файл PNG.

Я подтвердил rails server запускает среду разработки. Я добавил следующее в config/environments/development.rb:

Paperclip.options[:command_path] = "/opt/local/bin"

Моя фотомодель имеет следующее:

class Photo < ActiveRecord::Base
  has_attached_file :file, :default_style => :view, :styles => {
    :view => { :geometry => '520x390>', :format => 'jpg' },
    :preview => { :geometry => '160x120>', :format => 'jpg' } }
  validates_attachment_content_type :file,
    :content_type => [ 'image/jpeg', 'image/pjpeg', 'image/png' ]
end

Контроллер My Photos:

class PhotosController < ApplicationController
  # ...
  def create
    @photo = Photo.create params[:photo]
  end
end

Как я уже сказал, я могу получить доступ к исходным изображениям в пути URL system/files/:id/original, но версии с измененным размером, которые я хочу, недоступны и не найдены в файловой системе. Журнал WEBrick предполагает, что Paperclip даже не может ImageMagick идентифицировать изображения перед изменением их размера.

Есть идеи? Заранее спасибо!

1 ответ

Решение

Как может быть сказано выше, это может быть дублирующим вопросом, но эта проблема была вызвана недавней ошибкой в ​​ImageMagick 6.7.3-0, исправленной вскоре после этого в 6.7.3-1. MacPorts также был обновлен с новым выпуском.

В 6.7.3-0 указывается номер кадра в пути к файлу (например, identify /path/to/file.png[0]) вызвал ошибку в ImageMagick ("Ошибка сегментации 11"). Скрепка указала номер кадра, чтобы обеспечить его обработку первым кадром или страницей файла изображения.

Новый выпуск ImageMagick решил эту проблему. Ошибка была упомянута на MacPorts:

https://trac.macports.org/ticket/31643

Другие вопросы по тегам