[英]Translate SQL query to Ruby on Rails
我需要转换一个相对简单的查询,以在Rails / HAML中设置的表中显示给定用户的总测验平均值。 我们有用户参加测验,记录分数并显示每个测验的平均值。 现在,我们要求所有测验的总平均值。 简单:
SELECT (ROUND(AVG(`score`*100), 1)) FROM `quiz_results` WHERE `user_id`=$user
结果需要显示在已经设置的表格单元中,但是我无法弄清楚。
也许这条线会有所帮助。 它是预先存在的代码,用于为该用户计算特定测验的平均值:
%td.separate="#{(((lesson.quiz_results.average('score', :conditions => "user_id = #{@user.id}")) * 100).to_i)}%"
我有Rails2.3.x。
好吧,正如我现在所看到的-您所需要的只是删除由关联用法lesson.quiz_results
施加的特定测验限制-而不是仅使用模型类,这很可能是QuizResult
。
而且,您现有的代码中也有一个小错误.to_i
将四舍五入,您应该使用.round
。 看到不同:
irb(main):002:0> 1.6.to_i
=> 1
irb(main):003:0> 1.6.round
=> 2
因此,完整的代码应为:
(QuizResult.average('score', :conditions => "user_id = #{@user.id}") * 100).round
(我还删除了一些不必要的括号)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.