Как заставить Paperclip распознавать пользовательские процессоры, а не просто выдвигать стили на миниатюру? - PullRequest
0 голосов
/ 25 августа 2011

У меня нет проблем с загрузкой пользовательского процессора, однако, когда я пытаюсь вызвать его из has_attached_file, paperclip игнорирует его и вместо этого просто запускает миниатюру.

модель

  has_attached_file :file, 
                    :styles => { :web => "some input" }, 
                    :processors => [ :custom ],
                    :url => ":class/:id/:style/:basename.:extension",
                    :path => ":class/:id/:style/:basename.:extension"
                    :storage => :s3

Простой процессор, который можно сделать, просто чтобы показать, что процессор запущен

processor.rb

module Paperclip
  class Custom < Processor

    attr_accessor :input

    def initialize(file, options = {}, attachment = nil)
      super
      @basename = File.basename(file.path, File.extname(file.path))
    end

    def make
      dst = Tempfile.new([ @basename, 'jpg' ].compact.join("."))
      dst
    end
  end
end

Новместо этого, когда я проверяю сохраненную запись, она возвращает переменные экземпляра из эскиза

> record.file.styles

{:web=>
  #<Paperclip::Style:0x00000102f185d0
   @attachment=
    http://s3.amazonaws.com/bucket/model/id/base_name/file_name.jpg,
   @format=nil,
   @geometry="some_input",
   @name=:web,
   @other_args={}>}

Я должен что-то упустить при записи процессораили звоню.Есть идеи, что здесь происходит?

Ответы [ 3 ]

1 голос
/ 03 апреля 2013

Вы положили в нужном месте?

lib/paperclip_processors/custom.rb
1 голос
/ 25 августа 2011

Вы пробовали что-то подобное?

 has_attached_file :file,
                        :styles => {
                         :my_super_style => {:geometry => "100x100#", :foo => "bar", :processors => [:custom]}

                        },
0 голосов
/ 11 марта 2014

: styles => {: web => "некоторый ввод"}, : processors => [: custom],

должно быть:

: styles => { : web => {: geometry => "некоторый ввод",: processors => [: custom]},

...