1

Недавно переключился с RMagick на Mini_Magick. Я получаю ошибку undefined method 'write' for "":String. Вот что мой загрузчиком выглядит ...CarrierWave + Mini_Magick: undefined метод `write 'for" ": String

class BackgroundUploader < CarrierWave::Uploader::Base 
    include CarrierWave::MiniMagick 
    include CarrierWave::MimeTypes 
    process :set_content_type 

    storage :file 

    def store_dir 
    "uploads/backgrounds/#{model.id}" 
    end 

    def default_url 
    "/assets/fallback/default.jpg" 
    end 

    process :resize_to_fit => [1024, 1024] 
    process :convert => 'jpg' 
    process :fix_exif_rotation 

    def fix_exif_rotation 
    manipulate! do |img| 
     img.auto_orient 
     img = img.gaussian_blur 5 
     img = yield(img) if block_given? 
     img 
    end 
    end 

    def extension_white_list 
    %w(jpg jpeg png) 
    end 

end 

Проблема заключается в способе fix_exif_rotation. Если я прокомментирую строку process :fix_exif_rotation, все будет хорошо. Я удалил ! с конца вызова auto_orient, поскольку это, похоже, вызвало проблемы для других при переключении с RMagick на Mini_Magick.

Любая помощь будет принята с благодарностью.

ответ

2

This комментария от выше связанного «Связанного вопроса 2» предлагает присваивание IMG, за исключением (!?) доходность, может ломать вещи, так что моя первая догадка попробовать просто img.gaussian_blur 5 вместо img = img.gaussian_blur 5.

В противном случае: трассировка стека?

+0

Ah ha! Вы правы. Спасибо за вашу помощь. Теперь единственное, что передается значение (5 в этом случае), кажется, не имеет никакого эффекта. Я не предоставляю ни одного, 5, 50, 100 ... результат будет тем же самым размытием. Есть идеи? – gbdev

+1

mini_magick - довольно простой камень, поэтому не так много, что может пойти не так. Моя невежественная догадка заключается в том, что изменение просто не видно. На основе [imagemagick docs] (http://www.imagemagick.org/www/command-line-options.html#gaussian-blur), возможно, вам следует попробовать параметры типа «10x3», чтобы указать как радиус, так и сигма. – Taavo

+1

Гвоздь снова. Спасибо, Тааво! Для всех остальных эти документы [здесь] (http://www.imagemagick.org/Usage/blur/#blur_args) действительно помогли разобраться в этом. – gbdev

Смежные вопросы