データベースに 2 つのテーブルがあり、両方に「updated_at」フィールドがあるとします。1 つのアクティブなレコード クエリで、両方のテーブルのすべてのレコードを取得したいと考えています。updated_at フィールドで並べられた 1 つの大きなアクティブ レコード リレーションを返す必要があります。これら 2 つのテーブルが非常に似ていると仮定します。
可能であれば、最初の 50 のみ、または 2 番目の 50 などを返す機能があるとよいでしょう。
これが例です
cats = Cat.all
dog = Dog.all
animals = (cats | dogs).sort!{|a,b| a.updated_at <=> b.updated_at}.limit(50)
すべての犬、次に猫を取得してから 1 つにマージし、最初の 50 匹の動物を取得するのはかなりコストがかかります。
db に対して 1 つのクエリを作成する方法が必要で、db は最初の 50 匹の動物を返します。または 2 番目の 50 匹の動物。