【问题标题】:Help using Flotilla and Ruby on Rails帮助使用 Flotilla 和 Ruby on Rails
【发布时间】:2023-09-26 22:46:01
【问题描述】:

我是 Rails(和 *)的新手,所以如果这是一个“愚蠢”的问题,我深表歉意。我已经组装了一个非常简单的 Rails 应用程序。它从另一台服务器接收数据(通过 HTTP POST)。我想绘制发送的数据图 - 特别是,我希望绘制温度与时间的关系图。

我正在尝试使用Flotilla 来生成这些图表,但除了主页上的一行示例之外,我似乎找不到太多关于如何使用它的文档:

        = chart("graph", {"Store 1" => {:collection => @store_one, :x => :date, :y => :sales }, "Store 2" => {:collection => @store_two, :x => :date, :y => :sales }})

这是我的 index.html.erb:

<table>
  <tr>
    <th>Temperature</th>
    <th>Time</th>
  </tr>

<% for post in @posts %>
  <tr>
    <td><%=h post.temperature %></td>
    <td><%=h post.created_at %></td>
  </tr>
<% end %>
</table>
<%= chart("graph", { "Graph1" => { :collection => @posts, :x => :created_at, :y => :temperature }})%>
<br />

第一部分只是打印出温度和时间列表。这工作正常。不幸的是,第二部分 - 实际图表 - 似乎不起作用。实际上什么都没有显示。

如果我查看生成的 HTML 的源代码,我会看到:

    <script language="javascript" type="text/javascript" src="/javascripts/jquery.flot.pack.js"></script>
    <script type="text/javascript">
      $.plot($('#graph'), [{"data":[[1234191865.0,12.0],[1234192069.0,15.0],[1234192113.0,16.0],[1234192123.0,18.0],[1234192189.0,21.0],[1234192203.0,25.0],[1234192320.0,27.0],[1234192329.0,29.0],[1234192384.0,30.0],[1234192391.0,31.0],[1234192402.0,35.0],[1234192409.0,29.0],[1234192412.0,31.0],[1234192414.0,27.0],[1234192419.0,25.0],[1234211826.0,27.0]],"label":"Graph1"}], {});
    </script>

但没有显示实际的图表。提前感谢您的帮助。

【问题讨论】:

  • 您是如何使“图表”方法发挥作用的?我什至无法达到你的程度。

标签: ruby-on-rails flot graphing


【解决方案1】:

对我有用的是在视图顶部添加这一行:

<%= javascript_include_tag 'jquery-1.5.1','flot/jquery.flot.js','excanvas.pack.js','jquery.flot.pack.js' %>

这意味着在我的视图中包含使用 flot 所需的所有 javascript。还要确保在 /public/javascripts/ 文件夹下拥有所有 js 文件

【讨论】:

    【解决方案2】:

    尝试在页面的任意位置添加一个 ID 为 graphdiv 元素;它将用作图表的画布。

    &lt;div id="graph" style="width:600px;height:300px;"&gt;&lt;/div&gt;

    元素的id 必须与您作为第一个参数传递给chart 的字符串匹配。

    如有疑问,您可以查看 Flot 网站上various example pages 的来源。

    【讨论】: