我有Ruby on Rails 2.3.x.我有一个学习管理系统的数据库。
为用户提供用户ID,并进行测验。如果用户进行任意数量的测验,我希望显示平均分数。得分在quiz_results
表中列为0到1之间的浮点数,因此* 100
和.round
也包含user_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"
仍会显示。
我做错了什么?
答案 0 :(得分:0)
您正在测试是否:
QuizResult.find_by_user_id(@user_id)
存在,但我怀疑你的意思是:
QuizResult.find_by_user_id(@user.id)