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)