Ich habe jetzt für ein bisschen rätseln. Hier ist der Code:Kann nicht korrekte Antworten und falsche Antworten in meiner Quizanwendung angeben
<ol>
<% @quiz.questions.each do |question| %>
<li> <%= question.content %> </li>
<% question.answers.each do |answer| %>
<% @submitted_quiz.submitted_answers.each do |submitted_answer| %>
<% if(submitted_answer.content == answer.content && submitted_answer.got_correct) %>
<li><span class ='correct-answer'><%= answer.content %> CORRECT </span></li>
<% break %>
<% elsif(submitted_answer.content == answer.content && submitted_answer.question.id == answer.question.id && submitted_answer.got_incorrect) %>
<li><span class ='incorrect-answer'><%= answer.content %> INCORRECT</span></li>
<% break %>
<% elsif(submitted_answer.content != answer.content) %>
<li><span class ='normal-answer'> <%= answer.content %> NORMAL</span></li>
<% break %>
<% end # if statement%>
<% end # submitted_answers.each do%>
<% end # question.answers.each do |answer|%>
<% end # @quiz.questions.each do %>
submitted_answers
enthält alle Antworten für das Quiz, dass der angegebene Benutzer korrekt war. Zum Beispiel:
Q: What color is the sun?
Blue
Yellow
Purple
Green
Und wenn der Benutzer Gelb gewählt hat, submitted_answers
Yellow
in content:string
Attribute enthalten würde, und ebenso über das got_correct
Attribut true
. Wenn der Benutzer Blue
wählt, geschieht das gleiche wie zuvor, außer dass got_correct
in seinem Standardzustand false
bleibt und ein anderes Attribut got_incorrect
auf true
gesetzt wird. Die Logik dafür ist bereits abgeschlossen und es funktioniert gut. Mein Problem ist, dass ich alle Fragen und Antworten für das Quiz anzeigen möchte, und wenn die Antwort der submitted_answers
entspricht und die got_correct
des Letzteren stimmt, zeige ich an, dass der Benutzer die Frage richtig beantwortete, indem er die Antwort in grün hervorhebt. Wenn die Antwort einer der submitted_answers
entspricht und die got_incorrect
des Letzteren stimmt, zeige ich an, dass der Benutzer die Frage falsch beantwortet hat, indem er die Antwort rot markiert hat.
Mein Code oben funktioniert nicht, weil ich weiter über eine submitted_answer
iterieren, auch nachdem ich die submitted_answer
an eine answer
angepasst habe. Der Code funktioniert also für die erste Frage und funktioniert nicht für die restlichen Fragen. Wie soll ich das beheben?
Was meinst du damit ‚normale Antwort‘? Habe diesen Fall nicht bekommen –