1

賢者の皆さん、こんにちは。

Rails 3のCarrierWaveでMiniMagickを使用して、次の手順に従って画像のサイズを変更して保存しようとしています: http://carrierwave.rubyforge.org/rdoc/classes/CarrierWave/MiniMagick.html

無加工で画像をアップロードできます。画像がアップロードされ、ディレクトリとアプリケーションで見ることができます。しかし、画像に対して処理を実行しようとすると、manipulate!メソッド内のブロックが呼び出されません。どうすればこれを解決できるか知っていますか?

動作する次のアップローダーがあります。

class MyContentImageUploader < CarrierWave::Uploader::Base
  include CarrierWave::MiniMagick
end

このコードを使用すると、フォームを使用して画像をアップロードし、結果ページで表示できます。すべてが桃です。

次のように、アップローダーに簡単なサイズ変更を追加しました。

class MyContentImageUploader < CarrierWave::Uploader::Base
  include CarrierWave::MiniMagick
  process resize_to_fit: [200,200]
end

プロセス呼び出しを追加した後、画像はアップロードされませんが、エラーも表示されません。アップローダにカスタム メソッドを追加しようとしましたが、同じ結果が得られました。

class MyContentImageUploader < CarrierWave::Uploader::Base
  include CarrierWave::MiniMagick
  def do_stuff:
    manipulate! do |img|
      img = img.resize_to_fit(200,200)
    end
  end
end

何も起こりません。イメージはサーバー上で更新されませんが、エラーは表示されません。raiseメソッドにいくつかの呼び出しを配置しdo_stuff​​て、呼び出しがどこまで実行されているかを確認しました。do_stuffメソッドが呼び出されていることがわかりますが、内部のブロックmanipulate!は呼び出されていません。これはどのように起こっているのでしょうか?この問題をどのようにトラブルシューティングしますか?

追加情報: config/initializers/carrierwave.rb 内に次のコードがあるため、処理が有効になっていると思います。

CarrierWave.configure do |config|
    config.storage = :file
    config.enable_processing = true
end

私は使っている:

  • レール 3.2.12
  • キャリアウェーブ 0.8.0
  • ミニマジック 3.5.0
4

0 に答える 0