Подтвердить что ты не робот

Обратные вызовы paperclip или простой процессор?

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

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

Я хочу вызвать API Panda после того, как файл был загружен. Я бы создал свой собственный процессор для этого, но поскольку 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?

4b9b3361

Ответ 1

Решение...

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

Ответ 2

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

Ответ 3

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

as_attached_file :image validates_attachment_content_type: :not_image