J’ai installé ImageMagick et j’ai installé le joyau Paperclip (version 4.0). J’ai ajouté:
Paperclip.options[:command_path] = 'C:\Program Files\ImageMagick-6.8.8-Q16'
au développement.rb
Mon modèle de photo.rb a ceci:
has_attached_file :image validates_attachment_content_type :image, :content_type => ['image/jpeg', 'image/png', 'image/jpg']
Je peux choisir un fichier dans photos / new.html.erb mais une fois que je clique sur le bouton “Créer une photo”, la page se recharge avec un message d’erreur spécifique à Paperclip indiquant:
1 error prohibited this photo from being saved: Image translation missing: en.activerecord.errors.models.photo.atsortingbutes.image.spoofed_media_type
Quelqu’un peut-il aider s’il vous plaît? Merci
Ce message est déclenché par un contrôle de validation de l’usurpation de contenu.
Pour Paperclip v.4, cela génère un bogue https://github.com/thoughtbot/paperclip/issues/1429
Alors que pour Paperclip v.3, il semble que cela lance un avertissement de désapprobation, https://github.com/thoughtbot/paperclip/issues/1423
J’attendrais donc que l’équipe Paperclip résolve ce bogue avant d’utiliser la version 4. Pour l’instant, je préfère continuer à utiliser la version 3.
gem "paperclip", "~> 3.5.3"
Ajoutez ceci à un initialiseur pour désactiver la protection contre l’usurpation d’identité:
require 'paperclip/media_type_spoof_detector' module Paperclip class MediaTypeSpoofDetector def spoofed? false end end end
Cela fonctionne sur Paperclip v3.5.1
(espérons que cela fonctionnera toujours dans V4
):
has_attached_file :attachment, styles: lambda { |a| a.instance.is_image? ? { *** image_styles ***} : { *** video_styles ***}, processors: lambda { |a| a.is_video? ? [ :ffmpeg ] : [ :thumbnail ] } def is_video? attachment.instance.attachment_content_type =~ %r(video) end def is_image? attachment.instance.attachment_content_type =~ %r(image) end