2010-02-26 5 views
8

Ho migrato la mia applicazione da binari 2.3 a rails3 e ho un problema con paperclip. Ho visto che c'era un ramo per rails3 su paperclip git.Rails3 e Paperclip

Così ho aggiunto "gem 'paperclip",: git =>' git: //github.com/thoughtbot/paperclip.git ',: branch =>' rails3 '"nel Gemfile e lancia il pacchetto di comandi installa .

Una volta installato paperclip, il caricamento ha funzionato correttamente ma non gli stili. Ho visto un trucco per sistemarlo.

# 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 

Gli stili sono ok dopo, ma non sono in grado di attivare il processore. Il mio codice è:

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] 

mio processore si trova in RAILS_APP/lib/paperclip_processors/cropper.rb e contiene:

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 

mio problema è che ho ottenuto questo messaggio di errore: non inizializzata costante Paperclip :: Cropper Il processore ritagliato non è caricato.

Qualcuno ha un'idea da risolvere?

Per informazioni la mia applicazione funziona bene su binari 2.3.4.

risposta

2

Riavviare il server, ha funzionato per me :)

0

Ho lo stesso problema. Sto usando la gemma graffetta da questo repository:

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

E ho anche ottenere "Paperclip costante inizializzata :: Cropper". Il riavvio del server non ha funzionato!

1

Ho ottenuto anche l'eccezione "non inizializzata Costante Paperclip :: Cropper". Ma puoi spostare il tuo cropper.rb nella directory lib di paperclip e aggiungere require 'paperclip/cropper.rb'. E 'funzionato per me, ma io uso bundler, così sembra molto brutto ...

+0

I final ho risolto il problema allo stesso modo in cui hai fatto tranne che ho installato paperclip come plugin ... Un po 'meno brutto: P – Arkan

0

Sì, installare Paperclip come plugin e funzionerà

5

Ho lo stesso problema. Sembra che i processori per graffette non vengano caricati nei binari 3. Fino a quando qualcuno non ha risolto il problema, ho infranto il problema spostando il file cropper.rb all'interno di/config/inizializzatori

1

Nella tua classe Photo.rb, o in quella che avevi bisogno di avere '.../cropper.rb' bisogna mettere la radice del progetto nel percorso così:

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

prima che usato per essere solo require 'lib/...'