2017-01-30 5 views
0

Ich möchte eine Scoring-App für die Einreichung erstellen, die der Kandidat eingereicht hat. Es wird mehrere Kampfrichter geben, die die Punkte für den Wettkämpfer eingeben können. Hier ist das Ergebnis Modell:Zusammenfassung mehrerer Datensätze

class Score < ActiveRecord::Base 
    validates :submission_id, presence: true 
    validates :score1, presence: true 
    validates :score2, presence: true 
    validates :score3, presence: true 
end 

Die Gäste werden in der Partitur Übersichtsseite als dies erscheinen:

<div class="row"> 
    <div class="col-md-2"> 
    <p><strong>Score 1:</strong></p> 
    </div> 
<% @submission.scores.each do |score| %> 
    <div class="col-md-1"> 
    <%= score.score1 %> 
    </div> 
<% end %> 
</div> 

<div class="row"> 
    <div class="col-md-2"> 
    <p><strong>Score 2:</strong></p> 
    </div> 
<% @submission.scores.each do |score| %> 
    <div class="col-md-1"> 
    <%= score.score2 %> 
    </div> 
<% end %> 
</div> 

<div class="row"> 
    <div class="col-md-2"> 
    <p><strong>Score 3:</strong></p> 
    </div> 
<% @submission.scores.each do |score| %> 
    <div class="col-md-1"> 
    <%= score.score3 %> 
    </div> 
<% end %> 
</div> 

<div class="row"> 
    <div class="col-md-2"> 
    <p><strong>Total Score:</strong></p> 
    </div> 
<% @submission.scores.each do |score| %> 
    <div class="col-md-1"> 
    <strong><%= ((0.25 * score.score1) + (0.25 * score.score2) + (0.50 * score.score3)) %></strong> 
    </div> 
<% end %> 
</div> 

<div class="row"> 
    <div class="col-md-2"> 
    <p><strong>FINAL SCORE:</strong></p> 
    </div> 
    <div class="col-md-1"> 
    <strong><!-- Sum all of the total score above --></strong> 
    </div> 
</div> 

Die Seite wird der gesamte Partitur mit allen Richtern vorgelegt zeigen und wird jeweils die Summe Punktzahl im Endergebnis beurteilen.

Jetzt möchte ich die gesamte Punktzahl von jedem Richter in die Gesamtpunktzahl in FINAL SCORE summieren. Wie erreiche ich das?

Vielen Dank im Voraus.

Antwort

1

Ich sehe, Sie haben auch für Partituren Multiplikation, so dass es Sie wollen, es zu benutzen es auch zu tun es auf diese Weise:

@submission.scores.sum('0.25 * (score1 + score2) + 0.5 * score3') 

Wenn nein, das nur verwenden:

@submission.scores.sum('score1 + score2 + score3') 
+0

Awesome! Es funktioniert. Vielen Dank –

+0

Eine andere Frage, kann ich die Ansicht basierend auf der höchsten Gesamtpunktzahl sortieren? –

+0

Ja, ich denke, es sollte funktionieren: '@ submission.scores.order ('0.25 * (score1 + score2) + 0.5 * score3 DESC')' – Argonus

Verwandte Themen