2010-02-26 2 views
8

Я перенесла свое приложение из рельсов 2.3 в rails3, и у меня проблема с скрепкой. Я видел, что была ветка для rails3 на caperclip git.Rails3 и Paperclip

Поэтому я добавил «gem» paperclip ',: git =>' git: //github.com/thoughtbot/paperclip.git ',: branch =>' rails3 '"в Gemfile и запустил установку набора команд ,

После установки paperclip загрузка работает отлично, но не стили. Я видел взломать его.

# 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 

Стили в порядке после этого, но я не могу активировать процессор. Мой код:

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] 

Мой процессор находится в RAILS_APP/Lib/paperclip_processors/cropper.rb и содержит:

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 

Моя проблема заключается в том, что я получил это сообщение об ошибке: неинициализированным константа Paperclip :: Cropper Усеченный процессор не загружен.

Есть ли у кого-нибудь идея исправить это?

Для информации мое приложение отлично работает на рельсах 2.3.4.

ответ

2

Перезагрузите сервер, работавший на меня :)

0

У меня такая же проблема. Я использую скрепку камень из этого хранилища:

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

И я также получаю «неинициализированную постоянную Скрепку :: Кроппера». Перезапуск сервера не сработал!

1

Я получил исключение «неинициализированного постоянного скрепки :: Cropper». Но вы можете переместить ваш cropper.rb в каталог paperclip lib и добавить require 'paperclip/cropper.rb'. Это работает для меня, но я использую Bundler, так что кажется, очень некрасиво ...

+0

I окончательный Я решил проблему так же, как и вы, кроме того, что я установил paperclip в качестве плагина ... Немного менее уродливый: P – Arkan

0

Да, установить Скрепка как плагин, и он будет работать

5

У меня такая же проблема. Кажется, что процессоры скрепки не загружаются в рельсы 3. Пока кто-то не исправил это, я взломал проблему перемещения файла cropper.rb внутри/config/initializers

1

В вашем классе Photo.rb или в зависимости от того, что вы требовали «.../cropper.rb» вы должны положить корень вашего проекта в пути, а также:

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

, прежде чем она используется, чтобы быть просто требуют „Библиотека/...“

Смежные вопросы