2016-06-23 1 views
0
class ImageUploader < BaseUploader 
    include CarrierWave::MiniMagick 

    version :crop do 
    process :crop_with_params 
    end 

    def crop_with_params 
    manipulate! do |image| 
    image.crop "#{model.crop_w}x#{model.crop_h}+#{model.crop_x}+#{model.crop_y}!" 
    image 
    end 
end 

上のサイズ制限を追加する必要があり、私はcrop_with_paramsに画像サイズを取得することができていますが、ビューのサイズの検証をトリガーする方法がわかりません。がcarrierwaveアップローダーとバージョン

答えて

0

あなたがダウンロードしたファイルのサイズに制限を加える必要がある場合は、検証を追加する必要があります(file_validators)、

validates :avatar, file_size: { less_than: 2.gigabytes } 

ようcarrierwave wiki

にaccodingあなたがそれをサイズ変更する必要がある場合は、あなたがのparamsにサイズを変更追加する必要がありますあなたのアップローダー

編集
version :crop do 
    process resize_to_fit: [100, 100] 
    end 

あなたはリサイズ後の画像を検証する必要がある場合はちょうど私が私のモデルのコールバックで(アップロードする前に、サーバー上のminimagickによって作成された)イメージのバージョンにアクセスしてから入れて、それを使用DOCUMENTATION mini-magick

+0

[OK]をクリックします。ただし、 'crop'バージョンにサイズ(20kbなど)制限を入れたい場合は、メッセージでエラーをトリガーします。 – shashank

+0

この宝石を使用してくださいhttps://github.com/musaffa/file_validatorsそれはあなたを助けるでしょう –

+0

私はすでにイメージの元のバージョンでサイズの検証を持っていますが、私はmini-magickによって作成されたトリミングされたバージョンにサイズ上限を入れたいエラーメッセージが表示されます。 – shashank

0

に応じて設定へこのパラメータを追加サイズ制限。

mount_uploader :image, uploader 
validate :xyz 

def xyz 
    if image.version.present? && image.version.size.to_i < max_size 
     errors.add :image, "select more large image." 
    end 
    end 
関連する問題