最新のアプリケーションでは、いくつかのアップロードを処理する必要があります。以前はペーパークリップを使用していましたが、すべてが正常に機能します。しかし、carrierwaveを試してみました。有望に見えますが、添付ファイルのサイズを検証する方法が見つかりません。ドキュメントにそれに関する情報がないようです。手動でモデルに追加する必要があります。カスタムバリデーター経由?
前もって感謝します!
最新のアプリケーションでは、いくつかのアップロードを処理する必要があります。以前はペーパークリップを使用していましたが、すべてが正常に機能します。しかし、carrierwaveを試してみました。有望に見えますが、添付ファイルのサイズを検証する方法が見つかりません。ドキュメントにそれに関する情報がないようです。手動でモデルに追加する必要があります。カスタムバリデーター経由?
前もって感謝します!
githubにWikiエントリがあります:https ://github.com/jnicklas/carrierwave/wiki/How-to%3A-Validate-attachment-file-size
Carrierwave、PaperClip、Drangonfly、Refileのコンテンツタイプとファイルサイズの検証をチェックするActive Model File Validators gemを作成しました(他のアップロードソリューションで機能することを願っています)。ファイルの内容に基づいて内容の種類を検出し、メディアタイプのなりすまし検出器を備えています。アップロード前とアップロード後の両方で機能します。
1.0
バージョンCarrierWave以降、ファイルサイズの検証が組み込まれています。
最新のcarrierwave
宝石をインストールする
gem 'carrierwave', '~> 1.0'
size_range
最小サイズと最大サイズを提供するメソッドを追加します
class ImageUploader < CarrierWave::Uploader::Base
def size_range
0..2.megabytes
end
validates_integrity_of
モデルで、画像のファイルサイズ(およびコンテンツタイプ)を有効に追加します。
class Image < ApplicationRecord
mount_uploader :image, ImageUploader
validates_integrity_of :image
これが私が思いついた解決策です-トリックは、ファイルがアップロードされていない場合、FogRubyGem爆弾を作ったのでファイルサイズを直接チェックできないということでした。ファイルがアップロードされたかどうかをCarrierWaveに尋ねるよりクリーンな方法があると思います。