【问题标题】:Rails: Loading Highstock using while loop not workingRails:使用while循环加载Highstock不起作用
【发布时间】:2015-10-07 21:20:46
【问题描述】:

我正在尝试使用 while 循环来填充我的 highstock 系列。 由于我可能有多个依赖于数据库中数据的图表,因此我需要使用 while 循环。

以下是我的 highchart 系列代码:

          series: [
              <% num_active_deals = @active_deals_daily_count.size %>
              <% num = 0 %>
              <% visibility = true %>
              <% while num < num_active_deals %>
                  {
                      name: <%= @active_deals_daily_count[num][0] + ' view count' %>,
                      pointStart: <%= @active_deals_daily_count[num][1] %>,
                      pointInterval: 24 * 3600 * 1000,
                      data: <%= @active_deals_daily_count[num][3] %>,
                      visible: <%= visibility %>
                  }, {
                      name: <%= @active_deals_daily_count[num][0] + ' redemption count' %>,
                      pointStart: <%= @active_deals_daily_count[num][2] %>,
                      pointInterval: 24 * 3600 * 1000,
                      data: <%= @active_deals_daily_count[num][4] %>,
                      visible: <%= visibility %>
                  }
                  <% num = num + 1 %>
                  <% if num != num_active_deals %>
                    ,
                  <% end %>

                  <% visibility = false %>
              <% end %>
          ] 

我的@active_deals_daily_count 包含以下数据:

[["Citibank", 1443628800000, 1443628800000, [0], [0]],["DBS", 1443628800000, 1443628800000, [0], [0]],["UOB", 1443628800000, 1443628800000, [0], [0]], ["POSB", 1443628800000, 1443628800000, [0], [0]], ["Great Eastern", 1443628800000, 1443628800000, [3,6,10,13,16,20,23,23], [3,5,6,7,8,9,12,16]]]

我知道对于前 4 个,不会加载任何数据,但我预计至少图表的名称会与最后一个一样出现。

在当前阶段,我只剩下一个空白区域应该是图表。

我浏览了许多指南,但仍然无法弄清楚我哪里出错了。任何帮助将不胜感激!谢谢!

【问题讨论】:

  • 您应该从数据库中选择记录并使用 map 将数据转换为具有正确结构的 ruby​​ 对象,而不是使用 while 和一堆 erb 插值。然后使用 JSON::encode 转换成 highcharts 消费的格式。
  • 举一个更具体的例子,我需要知道输入数据是什么样的。
  • 嗨@max 我不确定这是否是你的意思。例如,由于我正在循环通过 active_deals_daily_count 内容如下,如果 num = 4 它将返回以下内容。 active_deals_daily_count[4][0] = "大东方" active_deals_daily_count[4][1] = "1443628800000" active_deals_daily_count[4][2] = "1443628800000" active_deals_daily_count[4][3] = [3,6,10,13 ,16,20,23,23] active_deals_daily_count[4][4] = [3,5,6 7, 8,9,12,16]

标签: ruby-on-rails highcharts series


【解决方案1】:

我意识到了错误。

这实际上不是我的代码错误,而是 javascript 错误。

对于

name: <%= @active_deals_daily_count[num][0] + ' view count' %>,

javascript 不会检测到将其声明为字符串的“”,因此它会引发错误并且永远不会加载。

改为

name: "<%= @active_deals_daily_count[num][0] %> " + ' view count' %>

效果很好

希望它可以帮助其他面临同样问题的人!

【讨论】:

    猜你喜欢
    • 2013-10-24
    • 2011-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    • 2015-03-09
    • 2023-03-22
    • 1970-01-01
    相关资源
    最近更新 更多