Проверка содержимого вложения при загрузке с помощью драгоценного камня Paperclip

В Paperclip есть методы проверки для проверки наличия, размера и типа содержимого файлов. Но есть ли способ проверить содержимое файла перед сохранением записи?

Я попытался выполнить validate: my_method и открыть файл из [вложение] .path в my_method , но, конечно же, это не удается, потому что вложение не было перемещено в место окончательного упокоения в файловой системе до сохранения записи.

Написание пользовательского сообщения для скрепки -processor казался вариантом, потому что он имеет доступ к объекту File, принадлежащему вложению, до того, как запись будет сохранена, но неисправный процессор не сделает запись недействительной до ее сохранения.

Есть хороший способ сделать это? Как еще я могу убедиться, что в моем приложении есть только соответствующие файлы? (Могу ли я использовать другие обратные вызовы, которые аккуратно удалят всю запись, если файл недействителен?)

edit: Ооо. В частности, приведет ли повышение ActiveRecord :: Rollback из обратного вызова after_save к чему-нибудь разумному?

7
задан Tim Smith 12 August 2011 в 18:33
поделиться