Rails3 и Скрепка - PullRequest
       57

Rails3 и Скрепка

8 голосов
/ 26 февраля 2010

Я перенес свое приложение с rails 2.3 на rails3, и у меня возникла проблема со скрепкой. Я видел ветку для rails3 на скрепке git.

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

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

# 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.

Ответы [ 7 ]

5 голосов
/ 09 декабря 2010

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

2 голосов
/ 22 марта 2010

перезагрузите сервер, у меня сработало :)

1 голос
/ 07 февраля 2011

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

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

до того, как он просто потребовал "lib /..."

1 голос
/ 17 мая 2010

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

0 голосов
/ 29 сентября 2011

Я рекомендую вам несущую, а не скрепку, гораздо быстрее и проще https://github.com/jnicklas/carrierwave

0 голосов
/ 23 октября 2010

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

0 голосов
/ 29 марта 2010

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

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

И я также получаю "неинициализированную константу Paperclip :: Cropper". Перезапуск сервера не работал!

...