0

我将 strip 方法放在 CarrierWave 初始化程序中:

 def strip
   manipulate! do |img|
     img.strip!
     img = yield(img) if block_given?
     img
   end
 end

并调用上传者:

 version :thumb do
   process :resize_to_fit => [180, nil]
   process :quality => 70
   process :strip   
 end

现在 Rails 吐出这个错误:

未定义的方法`strip!为了 #

4

2 回答 2

2

未定义的#strip 方法

你定义你的方法是这样的:

def strip
  manipulate! do |img|
    img.strip!
    img = yield(img) if block_given?
    img
  end
end

但从您的代码示例中不清楚img是否真的有 #strip 或 #strip!方法。该错误是抱怨未定义爆炸方法,因此请尝试img.strip

内省

如果这不起作用,您可能需要在方法中插入一些调试代码,以便您可以看到img到底是什么,以及它实际支持的方法。例如:

  manipulate! do |img|
    puts img.class
    puts img.methods.sort
    img.strip
    img = yield(img) if block_given?
    img
  end

希望有帮助。

也可以看看

CarrierWave::MiniMagick

于 2012-06-18T04:45:18.130 回答
0

只需删除

从地带。

于 2012-06-17T23:26:15.757 回答