簡體   English   中英

將SQL查詢轉換為Ruby on Rails

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM