2016-08-11 10 views
0

私は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のようなものの代わりに、デフォルトを言うために、この検証メッセージを変えるために何かを行うことができますか?

答えて

0

フム、実際にはかなり簡単だった:私はちょうどそれと同じように、国際化に文字列を追加するために必要な:

errors.messaging.rmagick_processing_error: "Error processing image" 
関連する問題