0

Rails / HAMLで設定されたテーブルに、特定のユーザーの合計クイズ平均を表示するには、比較的単純なクエリを変換する必要があります。ユーザーにクイズに答えてもらい、スコアを記録して、クイズごとの平均を表示します。ここで、すべてのクイズの合計を求めます。簡単:

SELECT (ROUND(AVG(`score`*100), 1)) FROM `quiz_results` WHERE `user_id`=$user

結果は、すでに設定されているテーブルセルに表示する必要がありますが、これはわかりません。

おそらくこの行が役立つでしょう。そのユーザーの特定のクイズの平均を計算するのは、既存のコードです。

%td.separate="#{(((lesson.quiz_results.average('score', :conditions => "user_id = #{@user.id}")) * 100).to_i)}%"

Rails2.3.xを持っています。

4

1 に答える 1

0

さて、私が今見ることができるように-必要なのは、関連付けの使用によって課される特定のクイズの制限を削除するlesson.quiz_resultsことだけです-モデルクラスを使用するだけではなく、QuizResult.

また、既存のコードには小さなバグがあり.to_iます.round。違いを見ます:

irb(main):002:0> 1.6.to_i
=> 1
irb(main):003:0> 1.6.round
=> 2

したがって、完全なコードは次のようになります。

(QuizResult.average('score', :conditions => "user_id = #{@user.id}") * 100).round

(不要なブラケットもいくつか削除しました)

于 2012-08-25T06:52:14.913 に答える