最近从RMagick切换到Mini_Magick。我收到错误undefined method '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时,这似乎导致了其他人的问题。
非常感谢任何帮助。
答案 0 :(得分:2)
This评论建议分配给img,除了(!?)在收益中,可能会破坏事情,所以我的第一个猜测是尝试只用img.gaussian_blur 5
代替img = img.gaussian_blur 5
。
否则:堆栈跟踪?