Сумма / группировка с ограничениями по дате? - PullRequest
0 голосов
/ 06 марта 2012

Я написал следующие методы суммирования / группировки в моей модели StatementSales и хочу иметь возможность ограничивать результаты по дате, в данный момент он просто производит итоги для всех действительных записей в БД.С моей точки зрения, я хочу предоставить ссылки на «Одна неделя, один месяц, три месяца, один год» и т. Д. И в идеале передать их приведенным ниже методам.Как мне подойти к этому?

def self.total_units
 sum(:units)
end

def self.units_by_store
 group(:store).sum(:units)
end

def self.units_by_territory
 group(:territory).sum(:units)
end

def self.units_by_upc
 group(:upc).sum(:units)
end

Большое спасибо заранее!

1 Ответ

0 голосов
/ 06 марта 2012

Вы можете использовать области действия

Добавьте это к вашему классу

scope :between_dates, lambda { |start_date, end_date| where("date < #{end_date} AND date >= #{start_date}") }
scope :one_week, between_dates(Date.today, Date.today + 7.days)

Тогда вы можете сделать

def self.total_units
    self.one_week.sum(:units)
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...