А разве RoR не может просто слать тот заголовок, который хочет отправить разработчик (как в PHP через header функцию)? Тема с конфигом смотрится как-то… хм… непривычно.
Раскомментировали строчку — работает X-Accel-Redirect, закомментировали — sendfile(), вот вам и переносимость.
Суть в том, что разработчик приложения не парится, что там в данный момент используются и где вообще лежит статика, а просто зовет функцию send_file(), когда хочет отправить файл (логично, не правда ли?), и она за него делает всю магию. С php тут даже смешно сравнивать.
А не надо пытаться это делать. Не надо вообще разрешать это делать. Сегодня этого хочет разработчик, а завтра этим воспользуется злоумышленник. Организуйте структуру вашего приложения, чтобы она была четкой и понятной, и файлы, которые нужно отдавать клиенту, все лежали в одном строго определенном месте.
Я с вами полностью согласен, просто уже который раз на подобную фигню натыкаюсь в сторонних приложениях, на этот раз Redmine (выкачивают в /tmp файлы из репозитория для возможности отправки через web-интерфейс). Честно говоря, редмайн часто выбешивает своим кодом.
Ruby on Rails и Nginx: эффективно отдаем большие файлы