これは、mp3 などの画像ではないものをアップロードしようとしたときに表示されるメッセージです。
MiniMagick での操作に失敗しました。画像ではないのでしょうか? 元のエラー: MiniMagick::Invalid
ということで、ファイルの拡張子を調べて条件をつけてみました。mp3 でない場合にのみサイズを変更します。
CarrierWave を使用した FileUploader は次のとおりです。
class FileUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
...
if File.extname(File.name) != ".mp3"
process :resize_to_fit => [100, 100]
version :thumb do
process :resize_to_fit => [80, 80]
end
end
...
end
File.name は、現在のファイルの拡張子を除いた名前のみを提供します。名前と拡張子を提供する変数を知っていますか?
編集:
コントローラーで代替手段を見つけました:
def create
@myfile = File.new(params[:icon])
if @myfile.save
if @myfile.file.file.extension != "mp3"
@myfile.file.resize_to_fit(100, 100)
@file.save
end
end
しかし今、私は CarrierWave FileUploader で立ち往生しています:
version :thumb do
process :resize_to_fit => [80, 80]
end
複雑になりすぎて、画像だけにMiniMagickが必要です
ちょっとした条件が必要です:
file_is_image の場合? ==> サイズ変更 + サムネイルの作成
それ以外 ==> 何もしない
ありがとう