我很好奇是否有一种简单的方法来对模型中的所有属性进行求和,而不会看起来重复,也不会枯燥。
我有一个捐赠应用程序,这是我总结所有事情的方式:
def self.total_donations
array = Category.pluck(
'SUM(toilet_paper)',
'SUM(dental_hygiene)',
'SUM(first_aid)',
'SUM(general_hygiene)',
'SUM(underwear_socks)',
'SUM(blankets)',
'SUM(school_supplies)',
'SUM(diapers)').flatten.compact
array.inject(0){|sum, x| sum + x}
end 它很难看,但是我不知道如何在不做这样的事情的情况下把它们全部加起来。
谢谢!
发布于 2018-06-20 05:01:16
看看这个:
def self.total_donations
sum("toilet_paper + dental_hygiene + first_aid + general_hygiene + underwear_socks + blankets + school_supplies + diapers")
end生成的SQL:
SELECT SUM(toilet_paper + dental_hygiene + first_aid + general_hygiene + underwear_socks + blankets + school_supplies + diapers)
FROM "categories"请注意,在类实例方法中,您不必使用Category,因为它是self (假设该方法在Category模型中)。
https://stackoverflow.com/questions/50936732
复制相似问题