Я обновил свое приложение с ruby 1.9.3 до ruby 2.0, сохраняя большинство моих драгоценных камней без обновления. Все работало отлично, но когда я пытался загрузить изображение, я получил эту ошибку:Carrierwave/RMagick NoMethodError после обновления до ruby 2.0
NoMethodError - undefined method `[]=' for nil:NilClass:
app/uploaders/image_uploader.rb:91:in `block in optimize'
/home/stefpe/.rvm/gems/[email protected]/bundler/gems/carrierwave-5ee108128b40/lib/carrierwave/processing/rmagick.rb:263:in `manipulate!'
app/uploaders/image_uploader.rb:90:in `optimize'
/home/stefpe/.rvm/gems/[email protected]/bundler/gems/carrierwave-5ee108128b40/lib/carrierwave/uploader/processing.rb:85:in `block in process!'
/home/stefpe/.rvm/gems/[email protected]/bundler/gems/carrierwave-5ee108128b40/lib/carrierwave/uploader/processing.rb:81:in `each'
/home/stefpe/.rvm/gems/[email protected]/bundler/gems/carrierwave-5ee108128b40/lib/carrierwave/uploader/processing.rb:81:in `process!'
/home/stefpe/.rvm/gems/[email protected]/bundler/gems/carrierwave-5ee108128b40/lib/carrierwave/uploader/callbacks.rb:18:in `block in with_callbacks'
/home/stefpe/.rvm/gems/[email protected]/bundler/gems/carrierwave-5ee108128b40/lib/carrierwave/uploader/callbacks.rb:18:in `each'
/home/stefpe/.rvm/gems/[email protected]/bundler/gems/carrierwave-5ee108128b40/lib/carrierwave/uploader/callbacks.rb:18:in `with_callbacks'
image_uploader.rb основан на /carrierwave/processing/rmagick.rb примере manipulate
функции:
def optimize
manipulate! do |img, index, options|
options[:write] = {
:quality => 50,
:depth => 8,
:interlace => "Magick::PlaneInterlace"
}
img.strip!
end
end
Конфигурация: Сервер: Heroku, локальная Dev: линукс
рубин 1.9.3 -> 2,0
рельсы 3.2.13
carrierwave 0.6.2
RMagick 2.13.1
туман 1.3.1
Любая идея, почему нет никакой совместимости с рубином-2.0.0?
Спасибо заранее!
Вы бы так красиво и включает в себя отрывок с линией 91, как говорит об ошибке сообще? –