0

CarrierWave イニシャライザに strip メソッドを入れました。

 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 があるかどうかは、コード サンプルからは不明です! 方法。エラーは bang メソッドが定義されていないことを訴えているので、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 に答える