Как я могу генерировать изображения в режиме реального времени, используя Ruby on Rails и Gruff?
Я рисую гистограммы в моем приложении, используя грубость. В одном представлении "сравнить" я хочу показать один график для каждого "шага" моего "проекта". Я представляю это примерно так:
image_tag graph_step_path(step)
Я создал действие 'graph' в контроллере шага и включил маршрут. Но сейчас я как бы потерялся. Как мой контроллер может вернуть правильный путь к изображению функции image_tag? Делать "возврат" не кажется правильным. Или я мог бы как-то напрямую включить изображение, созданное Gruff?
редактировать:
Я создал вспомогательную функцию, которая создает график и возвращает путь к файлу.
1 ответ
В вашем методе контроллера вы хотите вернуть фактическое изображение вместо пути. Запись изображений на диск для каждого запроса будет очень медленной. Для этого используется метод send_data в rails.
send_data(g.to_blob, :filename => "any.png", :type => 'image/png', :disposition=> 'inline')
г твой грубый экземпляр. Имя файла не имеет значения вообще. Источник вашего тега изображения должен быть просто конкретным методом контроллера, который генерирует ваш график. Вы можете использовать нормальные помощники URL для генерации этого.