2013-06-17 5 views
0

안녕하세요 저는 프로그래밍 및 레일을 처음 사용하고 있으며 통계를 보여주는 앱에 관리자 인터페이스를 만들려고합니다. 많은 Responses이있는 Job 모델이 있으며 매일 평균 응답 시간을 수집해야합니다. 내가 할 것이 첫 번째 작업에 대한 응답 시간을 수집하기 위해서이 매우 간단레일 : 통계

job = Job.first 
response = job.responses.first 
response_time = response.created_at - job.created_at 

다음,하지만 난 그 날의 모든 작업에 대한 정보를 수집하려고하는 데 문제가 있어요. 나는 데이터 배열 쌍을 줄 솔루션을 생각해 내고있다. 예를 들어 {{June 17, 51}, [June 18, 60], [June 19, 38s], ... 등}.

내가

답변

0

당신이 활성 기록 해결책을 찾기 위해가는 생각하지 말고 필요한 걸 줄 것이다 올바른 레일 액티브 레코드 호출을 알아낼 못할,하지만 당신은 단지 필요, 당신이 필요가 작은 루비를 더하고 싶습니다.

아마 100 가지 방법이 여기에 키와 일자리 창출 날로부터 전체 일의 수와 값으로 계산

job = Job.first 
start_date = job.created_at 
response_dates = job.responses.pluck(:created_at) #creates an array of created_at datetimes 
day_stats = response_dates.each_with_object(Hash.new(0)) { |dt, h| h[((dt - start_date)/1.day).round(0)] += 1 } 

이 기본적으로 반복과 해시를 생성 한 방법입니다, 그것을 할 수 있습니다 날짜/시간 배열을 통해 작업 날짜의 응답 날짜를 뺀 다음 1 일로 나누고 하루 종일 반올림합니다.

출력 뭔가처럼 될 것입니다 : 당신이 날짜를 원하는 경우

=> {0=>1, 5=>2, 6=>1, 7=>2, 9=>1, 31=>1, 37=>6, 40=>1, 42=>3, 44=>1, 59=>32, 60=>59, 61=>2, 64=>1, 65=>2, 78=>168, 97=>39, 93=>2, 110=>1, 214=>1} 

, 당신은 시작일에 키 * 1.day를 추가 할 수