2017-09-26 146 views
0

我有一個包含4列「第一,第二,第三和平均值」的表格。他們是每個用戶在3次嘗試中的得分,然後計算3次嘗試的平均得分,並將計算結果輸入到「平均」列中。我怎麼能在服務器端使用rails來實現這一點,因爲用戶可以關閉客戶端的JavaScript?使用rails計算一條記錄中某行的平均值

非常感謝您的幫助! (rails 5.0.1.0,postgresql 9.5,ruby 2.3)

回答

0

對於我的理解你的問題,在我看來,你不能等待用戶完成嘗試發送它們,我會建議和開始用戶嘗試在該表中創建一個帶有ID的記錄,以便在每次嘗試通過休息服務發送每次嘗試後使用該嘗試ID並將其添加到現有記錄後,用戶「嘗試」一次他已經做了最後的嘗試,你可以很容易地計算出平均值,如果用戶在任何給定的時刻關閉了JS,那麼你在用戶嘗試的DB中存在一個現有實例,並且可以從那裏採取行動。讓我知道是否有什麼我不理解。

0

假設你需要存儲,只是計算在最終提交:

select id, (select avg(c) from (values(first),(second),(third)) table(c)) as average from table; 

params[:average] = (params[:first].to_i + params[:second].to_i + params[:third].to_i)/3.0 

如果你的罰款只計算它,你可以用類似的東西做在SQL

但可能更好,以避免這種情況,只是在更新時存儲它。