Rails 3 & Paperclip: "nicht erkannt durch 'identify' Befehl" - ruby-on-rails, macos, imagemagick, Büroklammer

Ein paar Systemdetails:

  • Mac OS X Lion 10.7.2, Rails 3, Büroklammer gem.
  • ImageMagick 6.7.3-0, Binärdateien installiert mit MacPorts in /opt/local/bin.
  • WEBrick in der Entwicklungsumgebung verwenden.

Ich versuche Fotos hochzuladen, die ich bekommen sollteverkleinert in Miniaturansichten. Wenn ich dies tue, wird die ursprünglich hochgeladene Datei gespeichert und kann über HTTP korrekt zugegriffen werden. Wenn ich versuche, auf die Miniaturansicht zuzugreifen, erhalte ich folgende Fehlermeldung:

Routing Error
No route matches "[file_URL]"

Vorher, beim Hochladen einer gültigen PNG-Datei, sehe ich diesen Fehler in meinem WEBrick-Protokoll:

[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.>

Tun which identify Ausgänge:

/opt/local/bin/identify

Berufung identify Mit dem Pfad der hochgeladenen Datei wird die Datei korrekt als PNG-Datei identifiziert.

Ich bestätige rails server Startet die Entwicklungsumgebung. Ich habe folgendes hinzugefügt config/environments/development.rb:

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

Mein Fotomodell hat Folgendes:

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

Mein Fotos Controller:

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

Wie gesagt, ich kann auf die Originalbilder im URL-Pfad zugreifen system/files/:id/original, aber die geänderten Versionen, die ich möchte, sind nicht zugänglich und werden nicht im Dateisystem gefunden. Das WEBrick-Protokoll schlägt vor, dass Paperclip die Bilder nicht vor der Größenanpassung identifizieren kann.

Irgendwelche Ideen? Danke im Voraus!

Antworten:

0 für die Antwort № 1

Dies kann eine doppelte Frage sein, wie oben erwähnt, aber dieses Problem wurde durch einen kürzlichen Fehler in ImageMagick 6.7.3-0 verursacht, der bald darauf in 6.7.3-1 behoben wurde. MacPorts wurde ebenfalls mit der neuen Version aktualisiert.

In 6.7.3-0, unter Angabe der Bildnummer im Dateipfad (z. identify /path/to/file.png[0]) hat ImageMagick zu segfault ("Segmentation fault 11") veranlasst. Paperclip hat die Bildnummer angegeben, um sicherzustellen, dass sie das erste Bild oder die Seite einer Bilddatei verarbeitet.

Die neue Version von ImageMagick hat dieses Problem gelöst. Der Fehler wurde auf MacPorts erwähnt:

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


Verwandte Fragen
Speisekarte