den*_*kin 2 activerecord ruby-on-rails ruby-on-rails-3
我有一个ActiveRecord具有两个数据库属性的模型,total和processing_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
Run Code Online (Sandbox Code Playgroud)
我可以轻松地做一些事情:
Item.completed.for_client(client).sum(:total)
Run Code Online (Sandbox Code Playgroud)
但我想做的是:
Item.completed.for_client(client).calculate(:total - :processing_fees) # obv not valid
Run Code Online (Sandbox Code Playgroud)
有没有办法做这样的事情?
这样的事情应该有效:
Item.completed.for_client(client).calculate(:sum, "item.total - item.processing_fees")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1934 次 |
| 最近记录: |