Ruby on Rails条件破碎

时间:2012-08-30 13:17:44

标签: ruby-on-rails ruby haml

我有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"仍会显示。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您正在测试是否:

QuizResult.find_by_user_id(@user_id)

存在,但我怀疑你的意思是:

QuizResult.find_by_user_id(@user.id)