2017-09-26 6 views
0

Actuellement, nous avons l'image de redimensionnement CarrierWave à 3 tailles dans le modèle.Copie et traitement de l'image à l'aide de CarrierWave

Model.rb

... 
mount_uploader :image Uploader 
... 

Uploader.rb

... 
version :small 
... 
version :medium 
... 
version :large 
... 

Nous aimerions ajouter un champ dans un modèle. L'image traitée_ est identique à l'image (3 tailles), plus un filtre de flou.

Model.rb

... 
mount_uploader :image Uploader 
mount_uploader :processed_image ProcessedUploader 
... 

ProcessedUploader.rb

... 
version :small 
    ## add blur processed 
... 
version :medium 
    ## add blur processed 
... 
version :large 
    ## add blur processed 
... 

Comment copier de l'original: l'image au: processed_image et l'ont traité après l'image est téléchargée?

Répondre

0

Vous pouvez le faire de deux façons:

  1. Utilisez un autre processed_image sur le terrain; écrire dans votre modèle:

    before_create: copy_image

    def copy_image

    self.processed_image = self.image.file 
    

    fin

  2. Utiliser l'image de champ unique; Il suffit d'utiliser des versions différentes comme small_blurred, medium_blurred, large_blurred etc et de traiter l'effet de flou sur ces versions.