Если вы работаете на Unix-машине, попробуйте это:
mimetype = `file -Ib #{path}`.gsub(/\n/,"")
Мне неизвестны какие-либо чистые решения на Ruby, которые работают так же надежно, как «файл».
Отредактировано для добавления: в зависимости от того, какую операционную систему вы используете, вам может понадобиться использовать «i» вместо «I», чтобы получить файл для возврата mime-типа.