Как высушить общие области для моделей Mongoid? - PullRequest
0 голосов
/ 29 января 2012

У меня есть несколько классов моделей Mongoid, у всех из которых есть поле: datetime.Я хотел бы запросить эти модели, чтобы найти записи, которые подпадают под сегодняшнюю дату.Запрос будет выглядеть следующим образом:

scope today, where(:datetime.gt => DateTime.now.beginning_of_day, :datetime.lt => DateTime.now.end_of_day)

В настоящее время вышеуказанный код области действия дублируется во всех классах модели.Как мне высушить это?

1 Ответ

2 голосов
/ 02 февраля 2012

Самое простое:

module TimeDepedentent
  field :datetime

  scope today, where(:datetime.gt => DateTime.now.beginning_of_day, :datetime.lt => DateTime.now.end_of_day)

  scope yesterday ...
  scope one_month_ago ...
end

class MyModel
  include TimeDepedentent
end
...