gpt4 book ai didi

mysql - 将信息发送到 Dashing 中的小部件

转载 作者:行者123 更新时间:2023-11-29 11:16:55 25 4
gpt4 key购买 nike

我正在 Ruby 中创建一个作业,它从 mysql 数据库获取信息并将其发送到 html 页面以创建一个小部件。问题是,当我从 mysql 数据库中取出数据时,我无法获取要显示的数据,但是当我手动输入输入并将其发送到 html 页面时......它可以工作!

require 'Mysql2' 

SCHEDULER.every '10s', :first_in => 0 do |job|
$application, $details, $timestamp = 0
table = Array.new

client = Mysql2::Client.new(:host => "localhost", :username => "****", :password => "****", :database => "Sample_Database")

#Gets statistics for latest input
sstc = client.query("SELECT * FROM Probably_Serious_Alerts")
sstc.each do |row|
$row = "{ cols: [ {value: '" + row["time_stamp"].to_s + "'}, {value: '"+ row["application"].to_s + "'}, {value: '" + row["details"].to_s + "'}]}"
table.push($row)
end
rows = "rows = ["
for row in table
rows = rows + row + ","
end
rows = rows[0...-1]
rows = rows + ']'

hrows = [
{ cols: [ {value: 'Time'}, {value: 'Monitoring System'}, {value: 'Event'}]}
]
sleep(1)
#rows = [
# { cols: [ {value: '2016-09-19 14:39:30 +0100'}, {value: 'Solarwinds'}, {value: 'First Solarwinds Error'}]},
# { cols: [ {value: '2016-09-19 15:24:17 +0100'}, {value: 'Nagios'}, {value: 'First Nagios'}]}]

puts rows
send_event('my-table', { hrows: hrows, rows: rows } )

end

注释的代码是我运行时打印到终端的代码。这也是我发送到 HTML 页面并在小部件上运行的内容。有任何想法吗?有什么异步的吗?

最佳答案

我知道现在有点晚了,但自从我在 Stackoverflow 上谷歌搜索我在尝试将数据推送到 Smashing Table Widget 时遇到的相同问题时偶然发现了这个问题,我想如果我分享我的解决方案,其他人可能会很高兴。代码中的问题是您将返回的行对象作为字符串放置,但是表格小部件期望,让我引用文档中的内容:

To send a row to the tbody (or thead), send a array of hashes to rows (hrows for thead). The bindings work from row to column. Every column should be it's own array element off a cols hash. The hash must have a key of "value" in order to show up. To send multiple rows, use an array of these hashes.

所以你必须将 MySQL 结果转换为哈希数组。请参阅下面的代码,请注意“Loc Nr.”、“Address”和“Status”是我的 MySQL 表的列名称:

results = db.query(sql)
hrows = [
{ cols: [ {value: 'Loc Nr.'}, {value: 'Address'}, {value: 'Status'}]}
]
table = Array.new
results.each do |row|
table.push({ cols: [ {value: row['Loc Nr.']}, {value: row['Address']}, {value: row['Status']}]})
end
send_event('locations', { hrows: hrows, rows: table } )

希望您已经找到了解决方案,但这可能对其他人有帮助:D

关于mysql - 将信息发送到 Dashing 中的小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39576678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com