Поиск записей, относящихся к текущему месяцу (или другим месяцам) - PullRequest
0 голосов
/ 15 марта 2010

У меня есть модель (Расход), которая содержит такие поля, как «стоимость».

Я бы хотел перебрать все мои расходы, чтобы найти сумму стоимости для всех записей, относящихся к определенному месяцу.

Есть ли способ сделать это напрямую в рельсах?

Expense.find (: все,: условия => .....)

Ответы [ 3 ]

5 голосов
/ 15 марта 2010

Чтобы получить СУММУ затрат за месяц на указанную дату:

  # date = any day of the month of intrest
  Expense.sum(:cost, :conditions => {:created_at => 
              (date.beginning_of_month..date.end_of_month)})

Чтобы получить сумму расходов за все месяцы:

Expense.sum(:cost, 
    :group => "EXTRACT(YEAR_MONTH FROM created_at)").each do |y_m, cost_sum|
  p "#{y_m}-#{cost_sum}"
end

В приведенном выше вызове используйте параметр conditions, чтобы ограничить набор результатов диапазоном дат.

1 голос
/ 04 марта 2013

Посмотрите на этот прекрасный драгоценный камень: https://github.com/radar/by_star

1 голос
/ 15 марта 2010

сумма / group_by:

Expense.find(:all, 
             :select => "SUM(cost) as cost_sum, MONTH(date) as month, YEAR(date) as year",
             :group => "MONTH(date), YEAR(date)" )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...