2010-02-26 11 views
8

He migrado mi aplicación de rails 2.3 a rails3 y tengo un problema con el clip. Vi que había una rama para rails3 en paperclip git.Rails3 y Paperclip

Así que agregué "gem 'paperclip',: git => 'git: //github.com/thoughtbot/paperclip.git',: branch => 'rails3'" en el Gemfile e inicié la instalación del paquete de comando .

Una vez que se instaló Paperclip, la carga funcionó bien, pero no los estilos. Vi un truco para arreglarlo.

# 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 

Los estilos están bien después de eso, pero no puedo activar el procesador. Mi código es:

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] 

mi procesador se encuentra en RAILS_APP/lib/paperclip_processors/cropper.rb y 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 

Mi problema es que tengo este mensaje de error: no inicializado Paperclip constante :: Cropper El procesador recortado no está cargado.

¿Alguien tiene una idea para arreglar eso?

Para información mi aplicación funciona bien en rails 2.3.4.

Respuesta

2

Reinicio del servidor, funcionó para mí :)

0

Tengo el mismo problema. Estoy usando la gema clip de este repositorio:

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

Y también me sale "Paperclip constante sin inicializar :: Cropper". ¡Reiniciar el servidor no funcionó!

1

Obtuve la excepción "uninitialized constant Paperclip :: Cropper" también. Pero puede mover su cropper.rb al directorio lib paperclip y agregar requerir 'paperclip/cropper.rb'. Que funcione para mí, pero yo uso bundler, por lo que parece muy feo ...

+0

I final solucioné el problema de la misma manera que lo hizo, excepto que instalé paperclip como un complemento ... Un poco menos feo: P – Arkan

0

Sí, instalar Paperclip como un plugin y funcionará

5

tengo el mismo problema. Parece que los procesadores de sujetapapeles no se cargan en los rieles 3. Hasta que alguien lo arregle, me corté el problema moviendo el archivo cropper.rb adentro/config/initializers

1

En su clase Photo.rb, o la que solía necesitar '.../cropper.rb' usted tiene que poner la raíz de su proyecto en el camino, así:

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

antes de lo que solía ser sólo requiere 'lib/...'