如何使用 scruffy 和 rails

Posted

技术标签:

【中文标题】如何使用 scruffy 和 rails【英文标题】:How to use scruffy with rails 【发布时间】:2011-08-29 12:20:38 【问题描述】:

我对 ruby​​ on rails 很陌生,我正在尝试将一些图表嵌入到我的应用程序中。 我选择使用 scruffy 并安装了 scruffy gem。 但现在我真的不知道如何实际创建图表。我必须将代码放在哪里(在控制器或视图内)? 我是在控制器还是视图中调用 .render 方法? 如果我在控制器中调用 .render 方法,如何让图形显示在我的视图中? 对于初学者,我只想渲染 svg 图像,因为我还不想安装 imageMagick。

任何帮助将不胜感激! 谢谢

【问题讨论】:

【参考方案1】:

你到底想用这些图表做什么?

据我了解,scruffy gem 是不是专门为 Rails 制作的 ruby​​ 库。你应该像普通的 ruby​​ 脚本一样使用它,例如从一些数据创建图表并将其保存到文件中。如果您在 Rails 应用程序中执行此操作,则应将此代码放置在您的模型之一中,并且您应该以某种方式将创建的图像的 url 存储在模型中,以便以后可以轻松地从视图中访问它。图像创建过程可能很耗时,因此请考虑为其使用某种后台作业(例如delayed_job)。

创建图表后,您可以按常规方式将其显示在视图中:

<%= image_tag path_to_graph %>

【讨论】:

现在我在我的控制器中使用它:@graph.render(:width => 800,:to => "#RAILS_ROOT/public/images/AgentGraph.svg") 和这个我的观点: 但由于某种原因它不起作用... 你做错了想象一下 - 对于你的控制器的每个请求,都会创建一个新图表。这是非常无效的,您应该不时创建图表,具体取决于数据刷新率。但无论如何,你的方法似乎对我有用。它到底怎么行不通?如果你直接在地址栏输入图片的url,你能看到图片吗?

以上是关于如何使用 scruffy 和 rails的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Rails 和 Websocket 显示更新的数据?

如何在 Rails 6 中使用茧宝石

如何使用 Tailwind CSS 读取和解决 Rails 中的 Webpack 错误?

Rails:如何使用容器从 ECS 重用 AWS 凭证

如何开始使用 Backbone.js 和 Rails 3.1

如何在 Rails 6 和 webpacker 中使用 morris.js?