2017-09-26 145 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

但可能更好,以避免这种情况,只是在更新时存储它。