Domanda

Nella nostra ultima applicazione abbiamo bisogno di elaborare alcuni arrivi, ho lavorato con graffetta prima e tutto funziona! ma stiamo dando carrierwave una prova, sembra promettente, ma, non riesco a trovare come convalidare la dimensione del un allegato , sembra che la documentazione non ha alcuna informazioni su di esso, dovremmo aggiungerlo manualmente il modello tramite un validatore personalizzato?

Grazie in anticipo!

È stato utile?

Altri suggerimenti

Ho fatto un Active Modello File validatori gemma che controlli tipo di contenuto e la validazione dimensione del file per Carrierwave , graffetta, Drangonfly, REFILE (si spera che possa funzionare con altre soluzioni di caricamento). Rileva il tipo di contenuto in base al contenuto del file e ha rilevatore di un tipo di supporto parodia. Funziona sia prima che dopo il caricamento.

Dalla versione 1.0 CarrierWave è dotato di convalida dimensione del file.

Installa ultimo gioiello carrierwave

gem 'carrierwave', '~> 1.0'

Aggiungi metodo size_range per fornire una dimensione min e una dimensione massima

class ImageUploader < CarrierWave::Uploader::Base
  def size_range
    0..2.megabytes
  end

Nel modello aggiuntivo validates_integrity_of ad valido un file di dimensioni (e il tipo di contenuto) di un'immagine.

class Image < ApplicationRecord
  mount_uploader :image, ImageUploader

  validates_integrity_of :image

Ecco la soluzione che mi è venuta - il trucco era che non potevo controllare la dimensione del file direttamente come che ha fatto la bomba Nebbia rubygem se il file non è stato caricato. Mi aspetto che ci sia un modo più pulito per chiedere CarrierWave se un file è stato caricato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top