Frage

In unserer neuesten Anwendung müssen wir einige Uploads verarbeiten. Ich habe schon einmal mit Paperclip gearbeitet und alles funktioniert einfach! Aber wir geben Carrierwave Ein Versuch, es sieht vielversprechend aus, aber ich kann nicht finden So validieren Sie die Größe eines Ansatzes, es scheint das zu sein Dokumentation Sie haben keine Informationen darüber, sollten wir es dem Modell über einen benutzerdefinierten Validator manuell hinzufügen?

Danke im Voraus!

War es hilfreich?

Andere Tipps

Ich habe ein aktives Modell gemacht Datei -Validatoren Edelstein, das die Validierung von Inhaltstyp und Dateigröße für Carrierwave, Paperclip, Drangonfly, Refile überprüft (hoffentlich funktioniert es mit anderen Uploading -Lösungen). Es erkennt den Inhaltstyp basierend auf dem Inhalt der Datei und verfügt über einen Parodiedetektor von Medientyp. Es funktioniert sowohl vor als auch nach dem Upload.

Seit 1.0 Version CarrierWave hat eine integrierte Validierung der Dateigröße.

Neueste installieren carrierwave Juwel

gem 'carrierwave', '~> 1.0'

Methode hinzufügen size_range um eine min -Größe und eine maximale Größe zu liefern

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

Im Modell hinzufügen validates_integrity_of So gültig eine Dateigröße (und Inhaltstyp) eines Bildes.

class Image < ApplicationRecord
  mount_uploader :image, ImageUploader

  validates_integrity_of :image

Hier ist die Lösung Das habe ich mir ausgedacht - der Trick war, dass ich die Dateigröße nicht direkt überprüfen konnte, da dies die Nebel -Rubygem -Bombe machte, wenn die Datei nicht hochgeladen worden war. Ich würde erwarten, dass es eine sauberere Möglichkeit gibt, Carrierwave zu fragen, ob eine Datei hochgeladen würde.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top