Forum: Ruby on Rails Issue with mering ActiveRecord query results

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
3d0f832ab83163c0b0923260a86b6932?d=identicon&s=25 Sumit Srivastava (Guest)
on 2013-08-07 10:36
(Received via mailing list)
class ABC
def self.active

    self.live.where('starts_at <= ?', Time.now).where('(ends_at > ? ||
ends_at IS NULL)', Time.now)

  end

  def self.recently_completed`

    self.completed.where("completed_at > ?", 2.days.ago)`

 end

The issue is when I do:

(ABC.active + ABC.recently_completed).columns_hash

This gives error, undefined method `columns_hash' for #<Array:.......

When I do:

(ABC.active).merge(ABC.recently_completed)

The query being run is actually combination of the two. They are not run
independently as I expected.

I need a way to write the code as to run the queries separately and then
merge the results but not as an array.
14b5582046b4e7b24ab69b7886a35868?d=identicon&s=25 Joel Pearson (virtuoso)
on 2013-08-08 18:30
If you were going to use Hash#merge to remove duplicates between the two
result sets, you might as well just use Array#uniq on the Array.
Ce5e201eca55d4f79d0ead9acc91d544?d=identicon&s=25 Dheeraj Kumar (Guest)
on 2013-08-08 18:50
(Received via mailing list)
@Joel:

It isn't Hash#merge, but ActiveRecord::SpawnMethods#merge

--
Dheeraj Kumar
This topic is locked and can not be replied to.