使用ActiveRecord范围进行多列计算



我有一个ActiveRecord模型,它有两个数据库属性,totalprocessing_fees

它定义了各种范围,例如(仅作为示例):

class Item < ActiveRecord::Base
  scope :completed, joins(:order).where(:orders => {:status => Order::Status::COMPLETED})
  scope :for_client, lambda {|client| where("client_id=?", client.id)}
...etc...
end

我可以很容易地做一些事情,比如:

Item.completed.for_client(client).sum(:total)

但我想做的是:

Item.completed.for_client(client).calculate(:total - :processing_fees) # obv not valid

有办法做这样的事吗?

这样的东西应该可以工作:

Item.completed.for_client(client).calculate(:sum, "item.total - item.processing_fees")

最新更新