В моей модели определены следующие области:
scope :upcoming, -> { where(:start_time.gt => Time.now).asc(:start_time) }
scope :in_progress, -> {
now = Time.now
where(:start_time.lte => now).where(:end_time.gte => now).asc(:start_time)
}
Я хочу чтобы создать другую область, которая объединяет результаты обеих областей, называемых текущими. Я пробовал что-то вроде этого :
scope :current, -> { self.in_progress | self.upcoming }
, но в итоге они обрабатываются как массивы и объединяются. Проблема в том, что когда я пытаюсь вызвать свою область с помощью Model.current, я получаю следующее сообщение об ошибке:
NoMethodError: undefined method `as_conditions' for #<Array:0xaceb008>
Это потому, что он преобразовал объект Mongoid Criteria в массив, но я этого не хочу. Я хочу, чтобы объект оставался объектом Mongoid Criteria.
Чего я действительно хочу, так это объединения текущего набора _и предстоящего набора.
Есть идеи? Спасибо.