Хобрук: Ваш путь к мастерству в программировании

Rails3 и скрепка

Я перенес свое приложение с rails 2.3 на rails3, и у меня возникла проблема со скрепкой. Я видел ветку для rails3 на paperclip 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.


Ответы:


1

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

09.12.2010

2

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

22.03.2010

3

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

17.05.2010
  • Наконец-то я решил проблему так же, как и вы, за исключением того, что я установил скрепку в качестве плагина ... Немного менее уродливо: P 17.05.2010

  • 4

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

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

    раньше требовалось просто "lib/..."

    07.02.2011

    5

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

    23.10.2010

    6

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

    29.09.2011

    7

    У меня точно такая же проблема. Я использую драгоценный камень скрепки из этого репозитория:

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

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

    29.03.2010
    Новые материалы

    Учебные заметки JavaScript Object Oriented Labs
    Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

    Разбор строк запроса в vue.js
    Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

    Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
    «Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..

    Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
    каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

    Как настроить Selenium в проекте Angular
    Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

    Аргументы прогрессивного улучшения почти всегда упускают суть
    В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

    Введение в Джанго Фреймворк
    Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..