在Rails中计算运行总数的最佳方法是什么?
我有一个模特,Sale。它有一个数量列和一个sales_value列。当表按isbn_id、channel_id和invoice_date排序时,我需要用以前记录的数量值之和填充第三列total_quantity。这让各种合理的数据库管理敲响了警钟,所以我想知道这是否可能。
需要此累计金额的原因是对累计数量在特定范围内的销售额应用百分比。我不能使用所有记录的平均销售额,因为销售额的利润率可能会随着时间的推移而发生巨大变化——所以我会将平均值应用于一系列可能向版税收款人支付过高或过低的销售额。
所以。我应该以某种方式对Sale模型进行before_save回调并更新_attribute吗?当表以特定方式排序时,是否有返回上一条记录值的方法?或者我应该将所有的销售记录转储到一个数组中,并可能使用注入来累积运行总数吗?
欢迎有任何想法,提前谢谢。
更新:在此提出后续问题。
不要使用inject(srsly)。最好的方法是使用SQL组命令和/或activerecord(如sum)中的Calculations方法
http://ar.rubyonrails.org/classes/ActiveRecord/Calculations/ClassMethods.html