web-dev-qa-db-fra.com

heroku Paperclip erreur bizarre Paperclip :: Errors :: MissingRequiredValidatorError

J'ai déployé une application Rails sur heroku. Tout fonctionnait correctement jusqu'à ce que je change de domaine. Cela fonctionne également localement et j'ai maintenant l'erreur suivante: Paperclip::Errors::MissingRequiredValidatorError.

les variables s3 env sont définies sur heroku et je ne trouve pas pourquoi cette erreur se produit, l'aide est appréciée.

EDIT: pour référence future, cela n’a rien à voir avec heroku, une fois le regroupement effectué, la même erreur sera renvoyée localement, comme le suggère la réponse.

23
Itai Sagi

Avec la version 4.0 (publiée il y a 2 jours) Paperclip requiert la validation fichier/mime. Ajoutez simplement les éléments suivants à votre modèle:

validates_attachment_content_type :file_name, :content_type => %w(image/jpeg image/jpg image/png)

IMPORTANT: remplace le nom de fichier et le type de contenu afin qu'il corresponde à votre projet.

Cela fonctionne localement car vous n'avez probablement pas encore mis à jour Paperclip.

52
sebvst

ou tout simplement mettre cela et ignorer tout

do_not_validate_attachment_file_type :image
2
Maysam

Paperclip (version 4) est maintenant sécurisé par défaut. Vous devez valider le type mime ou le nom du fichier ou désactiver explicitement la validation.

Cela permet d'éviter l'usurpation de type de contenu, par exemple. le téléchargement d'un fichier php au lieu d'une image qui deviendra accessible au public.

La solution recommandée ressemble à ceci:

validates_attachment_content_type :image, :content_type => /\Aimage/

Documentation ici: https://github.com/thoughtbot/Paperclip#security-validations

Remarque il ne s'agit pas simplement d'un problème S3.

2
superluminary

Essaye celui-là -

validates_attachment_content_type: nom_fichier,: type_contenu => /\Aimage/.*\Z/

0
Chitra