【发布时间】: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