如何使用Ruby on Rails和Gruff实时生成图像?

时间:2011-04-29 09:59:29

标签: ruby-on-rails gruff

我使用粗暴在我的应用中绘制条形图。在一个视图中,“比较”,我想为我的“项目”的每个“步骤”显示一个图表。我想它是这样的:

image_tag graph_step_path(step)

我在步进控制器中创建了一个“图形”动作并包含了一条路线。但现在我有点迷茫。我的控制器操作如何将正确的图像路径返回到image_tag函数?做'回归'感觉不对。或者我可以以某种方式直接包含由粗暴产生的图像blob?

编辑:

我创建了一个辅助函数,用于创建图形并返回文件路径。

1 个答案:

答案 0 :(得分:5)

在控制器方法中,您希望返回实际图像而不是路径。将图像写入磁盘以满足每个请求的速度非常慢。 rails中的send_data方法用于执行此操作。

send_data(g.to_blob, :filename => "any.png", :type => 'image/png', :disposition=> 'inline')

g是你的粗暴实例。文件名根本不重要。图像标记的src应该是生成图形的特定控制器方法。您可以使用普通的url助手来生成它。