Der folgende Code wird ausgeführt, bevor das Modell gespeichert wird. Es überprüft eine has_many
Assoziation auf Änderung vor dem Durchschleifen und setzt einen Wert auf jeder. Es prüft jede Antwortoption, ob die correct_answer
bei einer der Antworten geändert wird. Wenn ja, sucht es nach dem was geändert wurde und war true
.Eine Methode vereinfachen oder verbessern
if self.answer_options.select{|a| a.correct_answer_changed?}.any?
self.answer_options.each do |answer_option|
if answer_option.correct_answer_changed? && !answer_option.correct_answer_was
answer_option.correct_answer = true
else
answer_option.correct_answer = false
end
end
end
Wie könnte ich diese Methode vereinfachen oder verbessern?
'answer_options.each {| answer_option | answer_option.correct_answer == nil} 'das sieht komisch aus, was versuchst du hier zu machen? –
@ Md.FarhanMemon Er setzt den 'false' Wert zurück, der zugewiesen wird, wenn keine 'Antwort_Option' vorhanden ist, die' answer_option.correct_answer_changed? 'Erfüllt. Im ursprünglichen Code war dafür eine Bedingung. – sawa