Paperclip + ImageMagick в Windows 7: отображение изображения не удается, когда я добавляю стили в прикрепленный_файл в модели

Я работаю с Ruby on rails 2.3.8, IDE NetBeans.

Я установил скрепку и смог успешно показывать/сохранять изображения. Теперь я установил ImageMagick-6.6.2-4-Q16 (для Windows 7, 64 бита).

До этого момента моя модель выглядела так (и работала нормально):

has_attached_file :photo

Теперь, после установки ImageMagick, когда я добавляю строку :style, происходит сбой:

has_attached_file :photo,
    :styles => {:thumb => "100x100#",   :small => "150x150>",   :large => "400x400>" }

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

 TypeError in ProfilesController#update

backtrace must be Array of String

Единственное, что я делаю в действии update этого контроллера, это следующее:

  @profile.update_attributes(params[:profile])
  @profile.update_attribute(:photo, params[:profile][:photo])

Я также установил драгоценный камень miniMagick (потому что я где-то читал, что должен был это сделать).

Что мне не хватает?


person Brian Roisentul    schedule 09.06.2010    source источник


Ответы (2)


Попробуйте скачать скрепку версии 2.3.1.1, выше мне не удалось.

person Felipe    schedule 10.06.2010
comment
Я попробую, спасибо. В любом случае, я нанял хостинг и попробовал свое приложение в Linux, и скрепка + ImageMagick отлично работают. Я думаю, что мне придется иметь дело с этим, пока я не найду реальное решение. - person Brian Roisentul; 11.06.2010

Я покажу вам, что это сработало для нас:

Существует конфликт имени с командой «конвертировать». Paperclips пытается запустить «конвертировать» как есть, но эта команда уже включена в установку Windows в качестве конвертера файловой системы (FAT в NTFS или что-то в этом роде).

Если вы попытаетесь запустить «конвертировать» из командной строки, возможно, будет запущен упомянутый конвертер вместо «конвертировать» imagemagick. Это зависит от переменной среды PATH.

Если мы установим путь imagemagick FIRST в переменной PATH, он сначала разрешит этот путь, поэтому команда Windows не будет выполнена.

Чтобы исправить это в нашем приложении rails, мы добавили

...
if Sys::Uname.sysname == "Linux"
...
else
  ....
   ENV['PATH'] = Paperclip.options[:command_path] + ";" + ENV['PATH']
end
...

на производстве.рб

person tjd    schedule 29.11.2012