Использование вспомогательных функций content_type и size
params[:upload]['datafile'].content_type
Не уверен, почему вы хотите сделать это в контроллере, но любая проверка должна быть перемещена внутри вашей модели. Также попробуйте использовать плагин, такой как Paperclip или SWFUpload, для обработки загрузок, для большей гибкости.
Попробуйте эти ссылки для примеров Скрепка , Attachment_fu , SWFUpload