Определенно создавайте модель XMLFile. Берите какой-нибудь пейперклип. Принимайте файл, сохраняйте на диск. Обрабатывайте необходимой логикой. Сохраняйте всю информацию (о файле, о пользователе и т.д., лишним никогда не бывает). Удаляйте хоть вручную (хранится все может в public), хоть по крону, хоть рейк-таском.
P.S. Возможно, XMLFile и избыточно. Но какая-то модель, обрабатывающая логику, необходима. Все зависит от конкретного случая. Не хочется модель-файл, делайте модель StaticPageHandler etc
P.S.S. Конечно, временный кэш вы можете организовать средствами Rails (gem dalli, memcached, или встроенное хранилище, или дисковое... (
guides.rubyonrails.org/caching_with_rails.html) ). А передавать в view ничего не нужно. Просто кэш сохранять по ключу сессии пользователя