Как правило, вы не хотите обрабатывать файлы до тех пор, пока не пройдут проверки, или вы собираетесь многократно хранить файлы, которые, возможно, не имеют связанных записей.Это делают такие гемы, как Paperclip и attachment_fu.
Если вы предпочитаете сохранить файл при первой отправке и он действителен, вы можете сохранить файл, а затем выполнить быструю проверку в своем представлении, чтобы убедиться, что он уже установлен дляобъект, для которого вы строите форму, например:
<% unless foo.attachment? %>
# file field
<% end %>
Имеет смысл?