すでにS3にCarrierWaveで画像をアップロードしているのですが、リサイズをかけたいので、再アップロードしたいです。
【注意】現時点では一旦ローカル環境でテストしています。
リサイズのためにuploader.rb
に追加した処理は以下の通りです。
ruby
1 def resize_to_image 2 img = ::Magick::Image::read(file.file).first 3 width = img.columns 4 if width > 800 5 resize_to_limit 800, nil 6 end 7 end
新規に画像をアップロードすると、横幅800px以上だった場合に正しくリサイズされます。
しかし既にアップロード済みの画像に関しては上手く再アップロード出来ません。いろいろ調べて以下のようなところまでは辿り着いています。
①lib/tasks/に以下のrecreate_image.rbを作成
ruby
1Article.all.each do |article| 2 begin 3 p article.id 4 article.top_image.recreate_versions! if article.top_image.present? 5 rescue 6 p "#{article.id} recreate failed." 7 end 8end
②rails runner lib/tasks/recreate_image.rbで実行
③ターミナル上にはarticle.idが表示されますが、実際には画像が作り直されていません。。。
何か足りないのでしょうか・・・・?

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。