YvesCesar / students_attendance_system

Attendance students with facial recognition and notifies responsibles via email.
GNU General Public License v3.0
0 stars 0 forks source link

Refactor frequency register controller #17

Closed YvesCesar closed 1 year ago

YvesCesar commented 1 year ago

Refactors frequency registers controller with ChatGPT.

Code generated:

def new
  @school_class = SchoolClass.find(params[:school_class_id])
  @frequency_register = FrequencyRegister.new
  script_data = @school_class.students.map { |student| "#{student.id},#{student.name},#{url_for(student.image)}" }.join(';')
  @students_id = `python3 python/students_face_recognition.py "#{script_data}"`.split(',').reject { |id| id.empty? || id == "\n" }
  @students_registered = Student.where(id: @students_id)
end

Response:

Usar map em vez de um loop each para criar a string script_data. Em seguida, usei o método join para combiná-las com ";". Isso é mais legível e eficiente do que concatenar strings com +=. Usei reject em vez de each para remover os IDs vazios do array de IDs de alunos. Isso é mais conciso e legível. Usei where em vez de um loop each para recuperar todos os alunos registrados no banco de dados com base nos IDs fornecidos pela saída do script Python. Isso é mais eficiente do que buscar um aluno de cada vez em um loop.