Mit Carrierwave wird ein Bild hochgeladen, und das Bild wird auf einer Seite gerendert, wenn die Validierung fehlgeschlagen ist.Carrierwave zeigt Bild nach fehlgeschlagener Validierung an
Szenario:
besuchen Benutzer bearbeiten Seite, wo es den Avatar-Bild des Benutzers enthält. Lade ein neues Avatarbild mit mehr als 4 MB hoch und klicke auf update. Validator schlägt fehl, da die Dateigröße größer als 4 MB ist. Benutzer bearbeiten Seite rendert mit korrekten Fehlermeldungen.
Problem:
Das Bild ist auf der gerenderten Seite bearbeiten angezeigt. Es verschwindet, wenn ich die Benutzerbearbeitungsseite erneut besuche, und kann bestätigen, dass es nicht in der Datenbank gespeichert wurde.
Ich verwende auch "file_validator
" gem.
class User < ActiveRecord::Base
...
validates :avatar, file_size: { less_than: 4.megabytes }
...
end
class UsersController < ApplicationController
...
def update
if @user.update_attributes(user_params)
flash[:success] = "Your account settings were successfully updated."
redirect_to @user
else
render 'edit'
end
end
Ref:https://github.com/johnTheDudeMan/foodme
Ich habe die Anweisungen aus dem CarrierWave-Wiki versucht, Cache-Verzeichnisse zu löschen, aber sie löschen nicht nach fehlgeschlagener Validierung. https://github.com/carrierwaveuploader/carrierwave/wiki/How-to:-Delete-cache-garbage-directories –