Я несколько дней бил головой об этом. В последнее время мой загрузчик изображений перестает работать должным образом. Я исследовал несколько возможностей, но ни один из предлагаемых решений не работал в моем случае.
Сообщение об ошибке:
#<Paperclip::Errors::NotIdentifiedByImageMagickError:Paperclip::Errors::NotIdentifiedByImageMagickError>
Вот подробности:
- Mac OS X 10.8.3
- ImageMagick 6.8.4-4 2013-03-29
- libtool = > /usr/bin/libtool
- Rails 3.2.13
- Ruby 1.9.3p194
development.rb
содержит соответствующий путь (и я проверил, что он правильный, используя which identify
)
Paperclip.options[:command_path] = "/usr/local/bin/"
Gemfile.lock
(соответствующая часть)
paperclip (3.4.1)
activemodel (>= 3.0.0)
activerecord (>= 3.0.0)
activesupport (>= 3.0.0)
cocaine (~> 0.5.0)
MODEL (я обновляю объект класса, но изображение находится в модели местоположения. (Classroom has_one :location, :as => :locatable)
Модель location.rb
class Location < ActiveRecord::Base
## Paperclip method for uploading location images
has_attached_file :picture, :styles => {:show => "1200x500#", :medium => "300x300#", :thumb => "100x100>"}, :convert_options => {:show => "-gravity center"}
has_attached_file :building_sign, :styles => { :show => ["1200x500#", :jpg], :medium => ["300x300#", :jpg], :thumb => ["100x100#", :jpg] }, :convert_options => {:show => "-gravity center"}
belongs_to :locatable, :polymorphic => true
belongs_to :location_type
validates :name, :presence => true
validates :latitude, :presence => true,
:length => {:within => 9..18},
:numericality => true
validates :longitude, :presence => true,
:length => {:within => 9..18},
:numericality => true
end
Контроллер classrooms_controller.rb
def update
@classroom = Classroom.find_by_facility_code_heprod(params[:id].upcase)
respond_to do |format|
if @classroom.update_attributes(params[:classroom])
format.html { redirect_to(@classroom, :notice => 'Classroom was successfully updated.') }
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @classroom.errors, :status => :unprocessable_entity }
end
end
end
То, что я пробовал.
- Я убедился, что имя изображения прост (USB2230.jpg), никаких двоеточий.
- Я обновил версию ImageMagick до последней.
- Я также повторно загрузил и переустановил CommandLine Tools для 10.8.3 (кто-то предположил, что проблема может быть связана с устаревшим libtool).
- Я перезагрузил компьютер.
-
Я пробовал варианты версий gem, включая
# variation 1 gem 'paperclip', '~> 2.8.0' gem "cocaine", "=0.3.2" # variation 2 gem "paperclip", "~> 3.4.0" gem "cocaine", "= 0.4" # variation 3 (which is what is reflected in the included Gemfile.lock info above). gem "paperclip", "~> 3.4.0"
Если я удалю масштабирование,
:styles => {:show => "1200x500#", :medium => "300x300#", :thumb => "100x100>"},
:convert_options => {:show => "-gravity center"}
загрузка работает, но мне нужно масштабирование; -)
Может ли кто-нибудь увидеть то, что мне не хватает?