質問

最新のアプリケーションでは、いくつかのアップロードを処理する必要があります。以前にPaperClipを使用していましたが、すべてが機能します。しかし、私たちは与えています キャリアウェーブ 試してみてください、それは有望に見えますが、私は見つけることができません 添付ファイルのサイズを検証する方法, 、それのようです ドキュメンテーション それについての情報はありませんが、カスタムバリーターを介してモデルに手動で追加する必要がありますか?

前もって感謝します!

役に立ちましたか?

他のヒント

アクティブモデルを作成しました ファイルバリエーター CarrierWave、PaperClip、Drangonfly、Refileのコンテンツタイプとファイルサイズの検証をチェックする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

これが解決策です 私が思いついたこと - トリックは、ファイルがアップロードされていなかった場合にFog Rubygem爆弾が作られたため、ファイルサイズを直接チェックできなかったことでした。ファイルがアップロードされているかどうかをCarrierWaveに尋ねるよりクリーンな方法があると思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top