Ruby on Rails条件破碎
我有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"
。
我究竟做错了什么?
您正在测试是否:
QuizResult.find_by_user_id(@user_id)
存在,但我怀疑你的意思是:
QuizResult.find_by_user_id(@user.id)