【问题标题】:Calculating average for a row in one record with rails使用rails计算一条记录中一行的平均值
【发布时间】:2017-09-27 05:25:07
【问题描述】:

我有一个有 4 列的表格,“第一、第二、第三和平均”。它们是每个用户在 3 次尝试中的得分,然后计算 3 次尝试的平均分数,并将计算结果输入“平均”列。由于用户可以在客户端关闭 javascript,我如何在服务器端使用 rails 实现这一点?

提前感谢您的帮助! (rails 5.0.1.0, postgresql 9.5, ruby​​ 2.3)

【问题讨论】:

    标签: ruby-on-rails ruby postgresql


    【解决方案1】:

    根据我从您的问题中了解到的情况,在我看来,您不能等待用户完成发送它们的尝试,我建议并且用户开始尝试在该表中创建一个带有 ID 的记录跟踪用户在每次尝试后“尝试”通过休息服务发送带有尝试 ID 的每次尝试的结果并将其添加到现有记录中,一旦他完成最后一次尝试,您可以轻松计算平均值,如果用户在任何给定时刻关闭 JS,您的数据库中有一个用户尝试的现有实例,您可以从那里采取行动。如果有什么我不明白的,请告诉我。

    【讨论】:

      【解决方案2】:

      假设您需要存储它,只需在最终提交时计算:

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

      如果你只是计算它没问题,你可以在 sql 中使用类似的东西:

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

      但最好避免这种情况并在更新时将其存储。

      【讨论】:

        猜你喜欢
        • 2021-11-01
        • 2021-11-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-24
        • 2023-03-27
        • 2022-11-25
        • 2011-12-04
        相关资源
        最近更新 更多