Использование области ActiveRecord для расчета с несколькими столбцами? - PullRequest
2 голосов
/ 13 февраля 2012

У меня есть модель 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

Я легко могу сделать что-то вроде:

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

, но я хотел бы сделать что-то вроде:

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

Есть ли способ сделать такую ​​вещь?

1 Ответ

6 голосов
/ 13 февраля 2012

Примерно так должно работать:

Item.completed.for_client(client).calculate(:sum, "item.total - item.processing_fees")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...