gpt4 book ai didi

ruby - 如何使用 inject 获取一些 AR 集合的总和?

转载 作者:数据小太阳 更新时间:2023-10-29 07:50:02 28 4
gpt4 key购买 nike

有关联 OrderItem 的模型 Order。我需要计算订单的成本,为此我使用了以下代码:

order_items.inject{ |sum, oi| sum += oi.value }

但结果我得到了 OrderItem 对象,而不是 Fixnum 或其他东西。我做错了什么?

最佳答案

除非您将初始值传递给 Enumerable#inject ,使用集合的第一项(在您的情况下为 OrderItem)。; OrderItem += OrderItem#value 根据您的问题返回 OrderItem。

尝试以下操作(将初始值显式传递为 Fixnum 0):

order_items.inject(0) { |sum, oi| sum + oi.value }

正如 bjhaid 评论的那样,最好使用 sum method如果您处理 ActiveRecord,则由 ActiveRecord 提供。 (不需要获取记录)

OrderItem.sum('value')

关于ruby - 如何使用 inject 获取一些 AR 集合的总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21376341/

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