Ответ 1
Решение...
Я помещаю обратный вызов после того, как скрепка has_attached в данной модели и работает красиво. Я просто так привык всегда ставить обратный вызов в верхней части всех моделей, что это не произошло со мной позже.
Я хотел запустить обратный вызов 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?
Решение...
Я помещаю обратный вызов после того, как скрепка has_attached в данной модели и работает красиво. Я просто так привык всегда ставить обратный вызов в верхней части всех моделей, что это не произошло со мной позже.
Перемещение атрибута has_attached_file выше. validates_presence_of и validates_attachment в вашей модели все еще должно быть сделано, кажется. Я просто столкнулся с той же проблемой в моей реализации Rails 4/Ruby 2 PaperClip и поставил ее выше исправленной.
Я столкнулся с этой проблемой, потому что имя моего свойства изображения paperclip не соответствовало имени, которое я проверял.
as_attached_file :image
validates_attachment_content_type: :not_image