обратные вызовы скрепки или простой процессор? - PullRequest
20 голосов
/ 24 декабря 2010

Я хотел запустить обратный вызов after_post_process, но он не работает в Rails 3.0.1 с использованием Paperclip 2.3.8. Выдает ошибку:

undefined method `_post_process_callbacks' for #<Class:0x102d55ea0>

Я хочу вызвать Panda API после загрузки файла. Я бы создал свой собственный процессор для этого, но, поскольку Panda обрабатывает и может загружать файлы, и ставить себя в очередь на неопределенную продолжительность, я думал, что обратный вызов подойдет. Но обратные вызовы, похоже, не работают в Rails3.

after_post_process :panda_create

    def panda_create
      video = Panda::Video.create(:source_url => mp3.url.gsub(/[?]\d*/,''), :profiles => "f4475446032025d7216226ad8987f8e9", :path_format => "blah/1234")
    end

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

Anyideas

Ответы [ 3 ]

46 голосов
/ 26 декабря 2010

Решение ...

Я поставил обратный вызов после скрепки has_attached в данной модели, и она прекрасно работает.Я так привык всегда ставить коллбэк на вершине всех моделей, что до меня это не приходило, пока позже.

8 голосов
/ 30 октября 2013

Перемещение атрибута has_attached_file выше validates_presence_of и validates_attachment в вашей модели все еще нужно сделать, кажется.Я только что столкнулся с той же проблемой в моей реализации PaperClip на Rails 4 / Ruby 2, и, поставив ее выше, исправил ее.

1 голос
/ 25 января 2016

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

as_attached_file :image validates_attachment_content_type: :not_image

...