首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否对模型中的所有属性求和?

是否对模型中的所有属性求和?
EN

Stack Overflow用户
提问于 2018-06-20 04:48:50
回答 1查看 76关注 0票数 1

我很好奇是否有一种简单的方法来对模型中的所有属性进行求和,而不会看起来重复,也不会枯燥。

我有一个捐赠应用程序,这是我总结所有事情的方式:

代码语言:javascript
复制
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 

它很难看,但是我不知道如何在不做这样的事情的情况下把它们全部加起来。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-20 05:01:16

看看这个:

代码语言:javascript
复制
def self.total_donations
  sum("toilet_paper + dental_hygiene + first_aid + general_hygiene + underwear_socks + blankets + school_supplies + diapers")
end

生成的SQL:

代码语言:javascript
复制
SELECT SUM(toilet_paper + dental_hygiene + first_aid + general_hygiene + underwear_socks + blankets + school_supplies + diapers)
FROM "categories"

  • short (没有更短的possible)
  • efficient (所有处理都在数据库层上完成)

请注意,在类实例方法中,您不必使用Category,因为它是self (假设该方法在Category模型中)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50936732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档