我正在 Rails 2.3.x 的学习管理系统上工作。这是我的代码:
-@users.each do |user|
%tr
%td
=link_to h(user.name), :action => :show_user, :id => user.id
%td="#{h user.grade_level}"
-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
表包含 user_id
和 score
等列。我有一条记录,其中包含 user_id
(3907) 和 result
(0.1),而我正在查看的两个用户在 quiz_results
中没有记录> 表。
对于这三个人来说,显示屏上都显示“没有进行测验”
,这让我相信这一行无论如何都是错误的:
-if QuizResult.find_by_user_id(@user_id).present?
有什么解决办法吗?
最佳答案
在 if
语句中将 @user_id
更改为 user.id
,并将 @user.id
更改为 用户.id
。另外将单引号更改为双引号,否则使用字符串插值将不起作用。
关于mysql - 错误率: Condition Always False - Why?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12208537/