Ruby on rails CarrierWave+;Mini#u Magick:未定义的方法'write';至于&引用;:一串
最近从RMagick切换到Mini_Magick。我收到“”的错误Ruby on rails CarrierWave+;Mini#u Magick:未定义的方法'write';至于&引用;:一串,ruby-on-rails,image-processing,imagemagick,carrierwave,minimagick,Ruby On Rails,Image Processing,Imagemagick,Carrierwave,Minimagick,最近从RMagick切换到Mini_Magick。我收到“”的错误未定义方法“write”:String。这是我的上传器的样子 class BackgroundUploader < CarrierWave::Uploader::Base include CarrierWave::MiniMagick include CarrierWave::MimeTypes process :set_content_type storage :file def store_dir
未定义方法“write”: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
class BackgroundUploader[1024,1024]
进程:convert=>'jpg'
过程:固定exif旋转
def fix_exif_旋转
操纵do | img|
自动定位
img=img.gaussian\u blur 5
img=如果给定块,产量(img)?
img
结束
结束
def扩展白名单
%w(jpg jpeg png)
结束
结束
问题在于fix\u exif\u旋转
方法。如果我注释掉这行过程:fix\u exif\u rotation
一切正常。我已经删除了从auto_orient呼叫结束时开始,因为在从RMagick切换到Mini_Magick时,这似乎给其他人带来了问题
img.gaussian_blur 5
而不是img=img.gaussian_blur 5
否则:堆栈跟踪?啊哈!你说得对。谢谢你的帮助。现在唯一的问题是传入的值(本例中为5)似乎没有效果。无论我是否提供无、5、50、100…结果都是相同的模糊半径。有什么想法吗?mini_magick是一个非常简单的宝石,所以不会有很多问题。我无知的猜测是,这种变化是看不见的。基于,也许你应该尝试像“10x3”这样的参数,来表示半径和σ。再次确定它。谢谢塔沃!对于其他人来说,这些文档确实帮助他们理解了这一切。