2010-02-26 5 views
8

J'ai migré mon application des rails 2.3 vers rails3 et j'ai un problème avec un trombone. J'ai vu qu'il y avait une branche pour rails3 sur git de trombone.Rails3 et Paperclip

J'ai donc ajouté "gem 'paperclip',: git => 'git: //github.com/thoughtbot/paperclip.git',: branch => 'rails3'" dans le fichier Gemfile et lancez l'installation du paquet de commandes . Une fois le trombone installé, le téléchargement a bien fonctionné, mais pas les styles. J'ai vu un hack pour le réparer.

# in lib/paperclip/attachment.rb at line 293 
def callback which #:nodoc: 
    # replace this line... 
    # instance.run_callbacks(which, @queued_for_write){|result,obj| result == false } 
    # with this: 
    instance.run_callbacks(which, @queued_for_write) 
end 

Les styles sont ok après cela, mais je ne suis pas en mesure d'activer le processeur. Mon code est:

has_attached_file     :image, 
            :default_url => "/images/nopicture.jpg", 
            :styles => { :large => "800x600>", 
               :cropped => Proc.new { |instance| "#{instance.width}x#{instance.height}>" }, 
               :crop => "300x300>" }, 
            :processors => [:cropper] 

Mon processeur est situé dans RAILS_APP/lib/paperclip_processors/cropper.rb et contient:

module Paperclip 
    class Cropper < Thumbnail 
    def transformation_command 
     if crop_command and !skip_crop? 
     crop_command + super.sub(/ -crop \S+/, '') 
     else 
     super 
     end 
    end 

    def crop_command 
     target = @attachment.instance 
     trans = ""; 
     trans << " -crop #{target.crop_w}x#{target.crop_h}+#{target.crop_x}+#{target.crop_y}" if target.cropping? 
     trans << " -resize \"#{target.width}x#{target.height}\"" 
     trans 
    end 

    def skip_crop? 
    ["800x600>", "300x300>"].include?(@target_geometry.to_s) 
    end 
end 
end 

Mon problème est que je suis arrivé ce message d'erreur: non initialisée Paperclip constante :: Cropper Le processeur recadré n'est pas chargé.

Est-ce que quelqu'un a une idée pour résoudre ce problème?

Pour information mon application fonctionne bien sur les rails 2.3.4.

Répondre

2

Redémarrez le serveur, a travaillé pour moi :)

0

J'ai le même problème. J'utilise la gemme de ce dépôt paperclip:

gem "paperclip", :git => "git://github.com/JasonKing/paperclip.git", :branch => "rails3" 

Et je aussi obtenir "Paperclip constante uninitialized :: Cropper". Redémarrer le serveur n'a pas fonctionné!

1

J'ai reçu l'exception "Paperclip: Cropper constant non initialisé". Mais vous pouvez déplacer votre cropper.rb dans le répertoire paperclip lib et ajouter require 'paperclip/cropper.rb'. Il fonctionne pour moi, mais je l'utilise Bundler, il semble donc très laid ...

+0

I final J'ai résolu le problème de la même façon que vous l'avez fait, sauf que j'ai installé un trombone comme un plugin ... Un peu moins moche: P – Arkan

0

Oui, installer Paperclip comme un plug-in et il fonctionnera

5

J'ai le même problème. On dirait que les processeurs de trombones ne sont pas chargés dans les rails 3. Jusqu'à ce que quelqu'un le corrige, j'ai piraté le problème en déplaçant le fichier cropper.rb dans/config/initializers

1

Dans votre classe Photo.rb, ou celle dont vous aviez besoin « .../cropper.rb » vous devez mettre la racine de votre projet dans le chemin ainsi:

require "#{config.root}/lib/paperclip_processors/cropper.rb" # required to make cropping work. 

avant d'être utilisé juste besoin « lib/... »