gpt4 book ai didi

ruby-on-rails - 如何在 Rails 3 中汇总记录?

转载 作者:行者123 更新时间:2023-12-04 05:54:12 25 4
gpt4 key购买 nike

我有一个 ItemsSold 模型,它包含一天内售出的杂志、书籍、视频、贺卡、钢笔的总数。我如何优雅地返回一个数组,其中包含最后任意周数中每件商品的每周销售总额?

我有一个模型文件:

#items_sold.rb
class ItemsSold < ActiveRecord::Base
attr_accessible :magazines, :books, :videos, :greeting_cards, :pens, :sold_date

end

我的表定义如下:

t.integer :magazines
t.integer :books
t.integer :videos
t.integer :greeting_cards
t.integer :pens
t.datetime :sold_date

此外,是否也可以返回去年的月度总计?

最佳答案

参见 ActiveRecord::Calculations#sum

by_week = (1...10).inject({}) do |wh, weeks_ago|
startat = weeks_ago.weeks.ago
endat = (weeks_ago - 1).weeks.ago
wh[weeks_ago] = [:magazines, :books, :videos, :greeting_cards, :pens].inject({}) do |sh, attr|
sh[attr] = ItemsSold.where("sold_date > ? and sold_date <= ?", startat, endat).sum(attr.to_s)
sh
end
wh
end

这将返回一个散列,如 {1 => {:magazines => 5, :books => 33, ...}, 2 => {{:magazines => 13, :books => 28 , ...}}, ...},其中每个键都是一个周数(1 表示过去一周,2 表示两周前,等等),值是另一个带有总和的哈希值。

关于ruby-on-rails - 如何在 Rails 3 中汇总记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4158947/

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