首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >通过层次结构获取平均和

通过层次结构获取平均和
EN

Stack Overflow用户
提问于 2018-07-03 01:47:51
回答 1查看 21关注 0票数 0

我正在构建一个rails 5应用程序。在这个应用中,我得到了两个对象/模型。记分卡和度量。

使用scorecard_id,一个记分卡可以有多个记分卡(子项)。记分卡还可以有许多度量。每个度量值都有一个保存为浮点数的分数属性。

此层次结构可以在两个级别上完成:

代码语言:javascript
复制
Scorecard A
-> Scorecard B
   -> Measure A (score 7.5)
   -> Measure B (score 8.0)

我想要获得计分卡A对象的度量A和B的平均分数。

如果我得到记分卡B,我可以使用下面的方法很容易地获得度量A和B的平均分数,但我需要通过顶级对象(记分卡A)获得它。

代码语言:javascript
复制
def score
   self.measures.sum(:score) / self.measures.count
end
EN

回答 1

Stack Overflow用户

发布于 2018-07-03 02:02:56

您需要遍历每个记分卡和度量,并收集总分和计数,以便在最后进行计算。这是一个快速而粗俗的版本,如下所示:

代码语言:javascript
复制
def score
    count = 0
    total_score = 0
    scorecards.each do |s|
        (c, t) = s.measure_calc
        count = count + c
        total_score = total_score + t
    end
    (c, t) = measure_calc
    count = count + c
    total_score = total_score + t

    return total_score / count
end

def measure_calc
    count = 0
    total_score = 0
    measures.each do |m|
        count = count + 1
        total_score = total_score + m.score
    end
    return count, total_score
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51141329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档