我一直在反对这个问题,我正在寻找一些帮助。我有一个一直运作良好的Dashing Wallboard。我正在尝试添加一个显示数据列表的小部件,但是小部件和history.yml文件中都没有显示任何数据。
我的其他小部件正在从同一个SQL服务器中提取数据,这就是下面省略连接信息的原因:
我的.rb作业文件中有以下代码:
results = client.execute("
SELECT [data] as name, [data2] as value
FROM [DB]
Where [Conditions]
GROUP BY [Tier];
")
datalist = results.map do |row|
row = {
:label => row['name'],
:value => row['value']
}
end
send_event('listofdata', { items: datalist } )
我的仪表板小部件如下所示:
<li data-row="2" data-col="3" data-sizex="1" data-sizey="2">
<div data-id="listofdata" data-view="List" data-title="This is a list of data" data-unordered="true"></div>
</li>
我的SQL查询的输出如下所示:
Tier 1 10
Tier2 6
Tier 3 31
数据类型是varchar和int。我在名称列中包含空格和空格,以显示查询的结果包含空格。
我也试过像这样做红宝石一面,但它仍然没有用。
results.each do |row|
send_event('listofdata', { label: row['name'], value: row['value'] })
end
无论我做什么,我都无法在小部件中显示任何数据。 我错过了一些非常明显的东西吗?
更新1: 也试过这个,没有用:
datalist = results.each(:symbolize_keys => true, :as => :array, :cache_rows => true, :empty_sets => true) do |rowset| end
data_count = Array.new
for j in (0...results.affected_rows)
data_count << {"label" => datalist[j].at(0), "value" => datalist[j].at(1).to_i}
end
答案 0 :(得分:0)
它似乎与列名和散列键冲突。这已得到确认:
results = client.execute("
SELECT CAST([data] as varchar) as name, CAST([data2] as int) as count
FROM [DB]
Where [Conditions]
GROUP BY [Tier];
")
datalist = results.map do |row|
row = {
:label => row['name'],
:value => row['count']
}
end
send_event('listofdata', { items: datalist } )