Только изображения процесса скрепки

Я хотел бы использовать одно файловое поле для нескольких форматов. Насколько я понимаю, Paperclip был достаточно умен, чтобы только масштабировать изображения и оставлять другие форматы в одиночку, но, похоже, это не работает для flv (который возвращает imagemagick/ident-errors). Есть ли способ немного помочь Paperclip и явно настроить конкретные форматы для масштабирования?

UPDATE: По-видимому, эти ошибки предотвращаются с помощью: whiny = > false (спасибо fl00r), который отлично подходит для регулярных загрузок. Однако то, что я пытаюсь сделать здесь, это загрузить файл по FTP, а затем создать новую запись по коду с файлом File.new([: путь]) в параметре вложения. Это работает как шарм для изображений, но: whiny = > false-trick больше не будет делать этого. У кого-нибудь есть советы по этому поводу?

Ответ 1

установите для параметра :whiny значение false:

has_attached_file :my_attach, :whiny => false ...

он не поможет peparclip обрабатывать только изображения, но он не будет вызывать ошибки, если обработка завершилась неудачно

UPD

Обработка только изображений:

has_attached_file :file, 
  :styles => lambda{ |a| ["image/jpeg", "image/png"].include?( a.content_type ) ? { :small => "90x90#" } : {}  }

где вы можете добавить столько, сколько хотите типов содержимого в массив ["image/jpeg", "image/png"]

Ответ 2

Вы также можете использовать обратный вызов paperclip для последующей обработки изображений и инструктировать скрепки для обработки изображений. Если обратный вызов before_post_process возвращает значение false, обработка останавливается.

    before_post_process :process_only_images

    def process_only_images
     %w(image/jpeg, image/png,image/gif,image/pjpeg, image/x-png).include?(attachment_content_type)
    end

Проверьте документацию скрепки для более подробной информации на https://github.com/thoughtbot/paperclip#events