1

在 Rails 中计算运行总数的最佳方法是什么?

我有一个模型,Sale。它有一个数量列和一个 sales_value 列。当表按 isbn_id、channel_id、invoice_date 排序时,我需要使用先前记录的数量值的总和填充第三列 total_quantity。这为各种明智的数据库管理敲响了警钟,所以我想知道这是否可能。

需要此累积总和的原因是对累积数量在特定范围内的销售额应用一个百分比。我不能在所有记录中使用平均销售价值,因为销售利润会随着时间的推移而发生巨大变化——所以我会将平均值应用于可能超过或低于支付特许权使用费收款人的一堆销售。

所以。我应该以某种方式对 Sale 模型和 update_attribute 进行 before_save 回调吗?当表以特定方式排序时,是否有一种方法可以返回前一条记录的值?或者我应该将所有销售记录转储到一个数组中,并可能使用注入来累积运行总数?

欢迎任何想法,在此先感谢。

更新:此处提出的后续问题。

4

1 回答 1

1

不要使用注入(srsly)。最好的方法是使用 SQL 组命令和/或 activerecord 中的计算方法(如 sum)

http://ar.rubyonrails.org/classes/ActiveRecord/Calculations/ClassMethods.html

于 2011-05-25T17:32:27.437 回答