2011-04-29 93 views
1

我使用粗糙在我的应用程序中绘制条形图。在一个视图中,'比较',我想为我的'项目'的每个'步骤'显示一张图。我想像是这样的:如何使用Ruby on Rails和Gruff实时生成图像?

image_tag graph_step_path(step) 

我在步进控制器中创建了一个'图形'动作,并且包含了一个路径。但现在我有点失落。我的控制器操作如何将正确的图像路径返回给image_tag函数?做'返回'并不合适。或者我可以以某种方式直接包含gruff生成的图像blob?

编辑:

我已经创建,创建图表并返回文件路径的辅助功能。

+0

与你的帮手,你应该已经解决了这个问题。你在问什么? – Mario 2011-04-29 13:20:22

+0

我的帮手做到了,但新用户无法回答他们自己的问题或其他:(所以我只能编辑它。 – MrB 2011-04-30 16:50:56

回答

5

在您的控制器方法中,您想要返回实际图像而不是路径。将图像写入磁盘可能会非常缓慢。 rails中的send_data方法用于执行此操作。

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

g是你粗鲁的例子。文件名完全不重要。图像标签的src应该是生成图形的特定控制器方法。你可以使用普通的url助手来生成这个。

+0

谢谢!这就是我一直在寻找的。 – MrB 2011-04-30 16:50:29