2013-08-01 2 views
0

기본적으로 ServerStatus라는 모델이 있으며 Google 차트로 전달할 객체를 만들어야합니다.레일스 - Google 차트의 동일한 테이블에서 객체 만들기

data_table.add_row([ datetime, success, failure]) 

날짜 시간 필드 generated_at라고하고 successfailure은 부울, 관련 카운트 (별도의 필드) 각각 모두 :

ServerStatus Schema: 
# config_id :integer 
# count  :integer 
# success  :boolean 
# failure  :boolean 
# generated_at :datetime 

개체 형식으로 할 필요가있다. 두 번에게 generated_at 시간을 이런 식으로 추가합니다 이렇게

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 

, 그래서 잘못 :failure => true 플롯의 그래프 :

나는 현재 다음을 수행하고있다. success = truefailure = true을 모두 선택하고 시간에 매핑 할 때 Null 값을 고려하여 각각의 수를 generated_at 시간으로 매핑하는 방법은 무엇입니까?)
이 진정한 성공은 = 모든 곳 실패 찾을 곳

그런 다음 위의 단계에 의해 반환 된 두 개의 배열을 추가 할 진정한 =
1) 모든 찾을 :

답변

0

당신은 두 개의 별도의 쿼리를 실행할 수 있습니다.

마지막으로이 새로 형성된 배열을 반복하고 data_table을 채 웁니다.

나는 두 변수의 필요성을 이해하지 못했습니다 : 성공 & 실패. & 오류가 동일한 레코드에 대해 동시에 true/false로 실패 할 수 있습니까? ServerStatus에 대한 간략한 정의에서 얻은 것, 나는 그것이 정말로 필요하다고 생각하지 않습니다. 하나의 변수만으로도 충분합니다.

server_status = ServerStatus.find(<your condition>) 
server_status.each do |status| 
data_table.add_row([status.generated_at, server_status.success, !server_status.success]) 
end 
관련 문제