json.current_attendance @current_attendance do |attendance|
  json.(attendance, :id, :name, :normal_count, :all_count)
  json.attendance_date attendance.attendance_date.strftime("%Y-%m-%d")
  json.start_time attendance.start_time.strftime("%H:%M")
  json.end_time attendance.end_time.strftime("%H:%M")
end

all_normal_rate = []
all_absence_rate = []
all_leave_rate = []
json.history_attendances @history_attendances.each_with_index.to_a do |attendance, index|
  normal_count = history_member_count(@all_member_attendances, "NORMAL", attendance.id)
  absence_count = history_member_count(@all_member_attendances, "ABSENCE", attendance.id)
  leave_count = history_member_count(@all_member_attendances, "LEAVE", attendance.id)
  all_count = @all_member_attendances.select{|member_attendance| member_attendance.course_attendance_id == attendance.id}.size

  json.index index + 1
  json.normal_rate cal_rate(normal_count, all_count)
  all_normal_rate << cal_rate(normal_count, all_count)
  json.absence_rate cal_rate(absence_count, all_count)
  all_absence_rate << cal_rate(absence_count, all_count)
  json.leave_rate cal_rate(leave_count, all_count)
  all_leave_rate << cal_rate(leave_count, all_count)
end

json.all_history_count @all_history_count
json.avg_normal_rate @all_history_count == 0 ? 0 : all_normal_rate.sum / @all_history_count
json.avg_absence_rate @all_history_count == 0 ? 0 : all_absence_rate.sum / @all_history_count
json.avg_leave_rate @all_history_count == 0 ? 0 : all_leave_rate.sum / @all_history_count