私はCarrierWave + rmagick gemを使用してイメージをサーバーにアップロードしています。私が通常のファイルをアップロードしているとき、すべてうまくいく。しかし、不正な形式のファイルをアップロードすると、フォームエラーはCarrierWaveエラーを表示せず、rmagickの実行時に表示されるエラーを表示します。rmagickからエラーをキャッチするときにCarrierWaveエラーメッセージを変更する
単純な例です。 I User
モデル、及びそのようなその内部のアップローダーがあります。
class User < ActiveRecord::Base
...
mount_uploader :avatar, PictureUploader
end
(avatar
が文字列field
ある)
さて、アップローダーがここで定義されています
class BaseImageUploader < CarrierWave::Uploader::Base
include CarrierWave::RMagick
storage :fog
def extension_white_list
%w(jpg jpeg gif png)
end
end
class PictureUploader < BaseImageUploader
def default_url
'placeholder.png'
end
def store_dir
'images/pictures'
end
version :thumb do
process resize_to_fit: [50, 50]
end
version :medium do
process resize_to_fill: [400, 400]
end
version :small_square do
process resize_to_fill: [200, 200]
end
end
をそれから私が作成空のファイル(たとえば、touch ~/Desktop/file.jpg
)をアップロードしてフォーム経由でアップロードしようとすると、ここで検証エラーが発生します。
Avatar Failed to manipulate with rmagick, maybe it is not an image? Original Error: Empty input file `<foldername>/public/uploads/tmp/1470905765-10111-5893/thumb_file.jpg' @ error/jpeg.c/JPEGErrorHandler/322
は私の代わりにrmagickのming_magickを使用してみましたが、結果は同じである(わずかに異なるエラーメッセージ付き)
は私がAvatar Your image is invalid
のようなものの代わりに、デフォルトを言うために、この検証メッセージを変えるために何かを行うことができますか?