gpt4 book ai didi

ruby-on-rails - 如何在 Ruby on Rails 中将三个映射函数合二为一?

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

我试图在一个函数中重写这三个函数:

def self.net_amount_by_year(year)
year(year).map(&:net_amount).sum
end

def self.taxable_amount_by_year(year)
year(year).map(&:taxable_amount).sum
end

def self.gross_amount_by_year(year)
year(year).map(&:gross_amount).sum
end

有人可以帮忙吗?

这是我目前所得到的:

def self.amount_by_year(type_of_amount, year)
year(year).map(&type_of_amount.to_sym).sum
end

&type_of_amount 位当然不起作用。我想知道该怎么做。

感谢您的帮助。

P.S.:顺便说一句,我什至不知道 & 是干什么用的。有人可以解释吗?

最佳答案

这应该有效:

def self.amount_by_year(type_of_amount, year)
year(year).map{|y| y.send(type_of_amount)}.sum
end

事实上,你应该能够做到这一点:

def self.amount_by_year(type_of_amount, year)
year(year).sum{|y| y.send(type_of_amount)}
end

引用资料:
Ruby send method
Rails sum method

关于ruby-on-rails - 如何在 Ruby on Rails 中将三个映射函数合二为一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18724923/

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