【发布时间】:2008-11-06 07:18:14
【问题描述】:
我正在编写一个将数据处理成图表的 Rails 应用程序(使用 Scruffy)。我想知道如何将图形呈现为博客/字符串,然后将博客/字符串直接发送到要显示的浏览器(而不将其保存到文件中)?还是我需要渲染它,将其保存到文件中,然后在浏览器中显示保存的图像文件?
【问题讨论】:
标签: ruby-on-rails ruby
我正在编写一个将数据处理成图表的 Rails 应用程序(使用 Scruffy)。我想知道如何将图形呈现为博客/字符串,然后将博客/字符串直接发送到要显示的浏览器(而不将其保存到文件中)?还是我需要渲染它,将其保存到文件中,然后在浏览器中显示保存的图像文件?
【问题讨论】:
标签: ruby-on-rails ruby
我认为您可以为此目的使用send_data:
send_data data_string, :filename => 'icon.jpg', :type => 'image/jpeg', :disposition => 'inline'
如果你把它放在一个控制器动作中——比如在图片控制器上显示,那么你需要做的就是在你的视图中包含以下内容(假设是 RESTful 路由):
<%= image_tag picture_path(@picture) %>
【讨论】:
我想知道直接发送到浏览器是否是最好的方法?如果用户有可能重新加载页面,这种短路是否会导致任何缓存的可能性?我问是因为我真的不知道。
【讨论】:
“如果用户可能会重新加载页面,这是否会导致任何缓存可能性的短路?”
否 - 无论您是从文件系统还是 send_data 提供服务都无关紧要。无论如何,浏览器正在从您的服务器获取数据。只需确保您已整理好 HTTP 缓存指令即可。
【讨论】: