Рекомендуется кэшировать сгенерированные изображения и разрешать их обслуживать веб-сервер.
Используйте веб-сервер, такой как Apache или Nginx, перед своим приложением Rails и убедитесь, что вы записали изображение в место, где веб-сервер может его обслуживать. Поэтому, если ваш маршрут Rails оценивается как /dynamic_images/3.png
(что вызывает dynamic_images_controller
action show
с id = 3 и format = png), запишите это изображение в public/dynamic_images/3.png
и используйте send_file
в контроллере для его отправки.
В следующий раз, когда этот файл будет запрошен (/dynamic_images/3.png
), веб-сервер с радостью будет обслуживать его (кэшировать), и приложение Rails никогда не получит доступ.
Для более сложных задач, таких как повторная генерация изображений и очистка кода контроллера, взгляните на скрепку gem.