title: How to union two different Mongoid Criteria
body: <p>I have the following scopes defined in my model:</p>
  
  <pre><code>scope :upcoming, -&gt; { where(:start_time.gt =&gt; Time.now).asc(:start_time) }
  scope :in_progress, -&gt; {
     now = Time.now
     where(:start_time.lte =&gt; now).where(:end_time.gte =&gt; now).asc(:start_time)
  }
  </code></pre>
  
  <p>I want to create another scope that combines the results of both of those scopes called current. I tried something like this:</p>
  
  <pre><code>scope :current, -&gt; { self.in_progress | self.upcoming }
  </code></pre>
  
  <p>But this just ends up treating them both like arrays and concatenating them. The problem with this is that when I try to call my scope with Model.current, I get the following error message:</p>
  
  <pre><code>NoMethodError: undefined method `as_conditions' for #&lt;Array:0xaceb008&gt;
  </code></pre>
  
  <p>This is because it converted the Mongoid Criteria object to an array, but I don't want that. I want the object to stay as a Mongoid Criteria object.</p>
  
  <p>What I really want is the union of the in_progress set and the upcoming set.</p>
  
  <p>Any ideas? Thanks.</p>