gpt4 book ai didi

ruby-on-rails - 如何在 ruby​​ on rails 中计算特定的评级计数哈希?

转载 作者:行者123 更新时间:2023-12-03 13:31:38 27 4
gpt4 key购买 nike

所以,我有一个 after_save Hook 评论 型号调用 计算特定评级产品型号的功能。函数是这样的:

def calculate_specific_rating
ratings = reviews.reload.all.pluck(:rating)
specific_rating = Hash.new(0)
ratings.each { |rating| specific_rating[rating] += 1 }
self.specific_rating = specific_rating
save
end

现在,它返回
specific_rating => { 
"2"=> 3, "4"=> 1
}

我希望它返回如下:
specific_rating => { 
"1"=> 0, "2"=>3, "3"=>0, "4"=>1, "5"=>0
}

另外,每次保存评论时都可以初始化一个新的哈希吗?我想要一些替代品。谢谢

最佳答案

您可以创建从 1 到 ratings 中的最大值的范围。加 1 并开始遍历它,生成一个数组,其中第一个元素是当前元素,第二个元素是当前元素出现在 ratings 中的总次数。 .在一切之后,结果被转换为散列:

self.specific_rating = (1..ratings.max + 1).to_h { |e| [e.to_s, ratings.count(e)] }
save

关于ruby-on-rails - 如何在 ruby​​ on rails 中计算特定的评级计数哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60472931/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com