基本上我有一个名为 ServerStatus 的模型,我需要创建一个对象以传递给谷歌图表。
ServerStatus Schema:
# config_id :integer
# count :integer
# success :boolean
# failure :boolean
# generated_at :datetime
该对象需要采用以下格式:
data_table.add_row([ datetime, success, failure])
日期时间字段称为generated_at
, 和success
都是failure
布尔值,每个都有一个关联的计数(单独的字段)。
我目前正在执行以下操作:
ServerStatus.find(:all, :conditions => {:config_id => options[:config_id], :success => true, :generated_at => options[:start_date].beginning_of_day..options[:end_date].end_of_day}, :order => 'generated_at ASC').each do |s|
ServerStatus.find(:all, :conditions => {:config_id => options[:config_id], :failure => true, :generated_at => options[:start_date].beginning_of_day..options[:end_date].end_of_day}, :order => 'generated_at ASC').each do |f|
data_table.add_row([ s.generated_at.in_time_zone('Pacific Time (US & Canada)'), s.count, f.count])
end
end
这样做会添加两次 generated_at 时间,因此绘图的:failure => true
图形不正确。如何选择所有位置success = true
并将failure = true
每个计数映射到generated_at
时间,同时考虑到映射到时间时的空值。