[英]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.