Одним из решений является использование before_post_process
обратного вызова:
# Model with has_attached_file
before_post_process :forbid_pdf # should be placed after line with has_attached_file
private
def forbid_pdf
return false if (data_content_type =~ /application\/.*pdf/)
end
data_content_type
следует заменить на соответствующее поле в вашей модели.
Другое решение, которое я придумал, заключается в созданииПользовательский процессор для изображений, в котором мы должны проверить тип файла и, если это не PDF, запустите стандартный процессор Paperclip::Thumbnail
.