Carrierwave + mini_magick gems = не ошибка изображения

Я использую:

- carrierwave 0.6.0
- rails 3.2.1
- mini_magick 3.4
- ruby 1.9.2p290

И во время загрузки изображения я хочу изменить размер загружаемого изображения:

(image_uploader.rb)
process :resize_to_fit => [200, 200]

Но после загрузки изображения у меня есть ошибка:

1 error prohibited this organization from being saved:
Image image Failed to manipulate with MiniMagick, maybe it is not an image? Original Error: MiniMagick::Invalid

PS. Если я не изменяю размер, загрузка изображений работает нормально.

PS2. Я попытался добавить в config/environment.rb:

require 'rubygems'
require "mini_magick"

но без успеха (все еще не работает - кстати, требуется ли при использовании mini_magick в качестве драгоценного камня?)

Ответ 1

Я уверен, что вы решили это к настоящему времени (по крайней мере, надеюсь, это почти два месяца спустя!), но вот решение, которое сработало для меня только сейчас:


Удалить imagemagick через homebrew:

  • brew uninstall imagemagick

Очистите каталог homebrew:

  • brew cleanup --force -s
  • - принудительно удаляет все устаревшие бочонки, -s удаляет все кэшированные загрузки

Переустановите imagemagick:

  • brew install imagemagick

После всего этого вам должно быть хорошо идти!

Ответ 2

В. Ответ Рушилла, похоже, решил проблему многих народов, к сожалению, это не для меня. Также не было найдено много решений в интернетах.

Оказывается, у меня была устаревшая версия libjpeg. Я исправил это путем удаления и повторной установки с помощью brew. Это может случиться и для других форматов изображений. Возможно, сделать то же самое для соответствующего lib может решить проблему.

TL; DR

brew remove libjpeg
brew install libjpeg