Ruby on rails CarrierWave+;Mini#u Magick:未定义的方法'write';至于&引用;:一串

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

最近从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
    "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时,这似乎给其他人带来了问题

任何帮助都将不胜感激。

上面链接的“相关问题2”中的评论建议分配给img,除了产量中的(!?)可能会破坏一切,因此我的第一个猜测是尝试只使用
img.gaussian_blur 5
而不是
img=img.gaussian_blur 5


否则:堆栈跟踪?

啊哈!你说得对。谢谢你的帮助。现在唯一的问题是传入的值(本例中为5)似乎没有效果。无论我是否提供无、5、50、100…结果都是相同的模糊半径。有什么想法吗?mini_magick是一个非常简单的宝石,所以不会有很多问题。我无知的猜测是,这种变化是看不见的。基于,也许你应该尝试像“10x3”这样的参数,来表示半径和σ。再次确定它。谢谢塔沃!对于其他人来说,这些文档确实帮助他们理解了这一切。