gpt4 book ai didi

ruby-on-rails - 如何在 ActiveRecord 类方法中使用 'map' 方法?

转载 作者:太空宇宙 更新时间:2023-11-03 17:06:00 25 4
gpt4 key购买 nike

不确定我的 Ruby 语法。

我想定义一个可以像这样调用的方法:client.invoices.average_turnaround。所以我的 average_turnaround 方法需要处理一组 ActiveRecord 对象。

到目前为止,这是我的代码:

class Invoice < ActiveRecord::Base
...
def self.average_turnaround
return self.map(&:turnaround).inject(:+) / self.count
end
end

因此,我试图找出每张发票的周转时间总和,然后将其除以发票总数。

Ruby 提示没有为 Class 定义的 map 方法。我期望 self 是一个 Array

如何编写一个适用于 Invoices 集合并使用 map 函数的方法?我哪里错了?

最佳答案

如果您想在类方法中使用映射而不是通过关联扩展。例如,直接调用 Invoice.average_turnaroundInvoice.where(x: y).average_turnaround 是否有用。将 all. 放在 map 之前。

class Invoice < ActiveRecord::Base
...
def self.average_turnaround
all.map(&:turnaround).inject(:+) / all.count
end
end

使用 average_turnaround 使用任何集合。

关于ruby-on-rails - 如何在 ActiveRecord 类方法中使用 'map' 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3491989/

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