1

최근에 RMagick에서 Mini_Magick으로 전환되었습니다. undefined method 'write' for "":String 오류가 나타납니다. 내 업 로더가 어떻게 생겼는지 ...CarrierWave + Mini_Magick : 정의되지 않은 메소드 "write"for "": 문자열

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으로 전환 할 때 다른 사람에게 문제가 발생한 것처럼 보입니다. Related issue 2

어떤 도움 Related issue 1

    • 주시면 감사하겠습니다. 위의 링크 된 "관련 문제 2"에서

  • 답변

    2

    This 코멘트는 나의 첫번째 추측 그냥 img.gaussian_blur 5 대신 img = img.gaussian_blur 5의를 시도하는 것입니다 (!?) 수율에 문제를 일으킬 수를 제외하고, IMG을 할당하는 것이 좋습니다.

    그렇지 않으면 스택 추적?

    +0

    아하! 당신 말이 맞아요. 당신의 도움을 주셔서 감사합니다. 이제는 전달되는 값 (이 경우 5)이 효과가없는 것처럼 보입니다. none, 5, 50, 100을 제공하는지 여부에 상관없이 결과는 동일한 흐림 반경입니다. 거기에 어떤 아이디어? – gbdev

    +1

    mini_magick은 매우 단순한 보석이므로 잘못 될 수있는 부분이 많지 않습니다. 내 무지한 추측은 변화가 단지 보이지 않는다는 것입니다. [imagemagick docs] (http://www.imagemagick.org/www/command-line-options.html#gaussian-blur)에 따르면 아마 "10x3"과 같은 매개 변수를 사용해 반경과 시그마. – Taavo

    +1

    다시 붙임. 감사합니다 Taavo! 다른 사람들에게,이 문서들 [here] (http://www.imagemagick.org/Usage/blur/#blur_args)은 그것을 모두 이해하는 데 정말로 도움이되었습니다. – gbdev

    관련 문제