0

Ruby on Rails 2.3.x を使用しています。学習管理システム用のデータベースがあります。

ユーザーにはユーザーIDが与えられ、クイズに答えます。ユーザーが任意の数のクイズに回答した場合、平均スコアを表示したいと考えています。スコアはquiz_results0 から 1 の間の浮動小数点数として表にリストされているため、* 100.rounduser_id行とともに表示されます。しかし、ユーザーがクイズをまったく受けていない場合は、私"No quizzes taken"が登場したいと考えています。

コードは次のとおりです。

-if QuizResult.find_by_user_id(@user_id).present?
    ="#{(QuizResult.average('score', :conditions => 'user_id = #{@user.id}') * 100).round}%"
-else
    %em No quizzes taken

quiz_results問題は、エントリがあっても、何があって"No quizzes taken"も が表示されることです。

私は何を間違っていますか?

4

1 に答える 1

0

次のことをテストしています。

QuizResult.find_by_user_id(@user_id)

存在しますが、次のことを意味していると思います:

QuizResult.find_by_user_id(@user.id)
于 2012-08-30T13:34:20.960 に答える