0

複数のクエリの情報を組み合わせたデータを表示したいと考えています。例えば:

@projects = @company.projects
@assignments = @company.assignments
@tasks = @company.tasks

これら 3 つのクエリを使用して、プロジェクト、割り当て、およびタスクをすべて で並べ替えて表示する大きなテーブルを表示するにはどうすればよいcreated_atでしょうか? 望ましい結果は次のようになります。

7/11  Task created by company Xc for project Xp.
7/10  Project Xp created by User U.
7/09  Task created by company Yc for project Yp.
7/09  Assignment created by company Yc for project Yp.
7/08  Project Yp created by user U.
4

1 に答える 1

2

UNION最新の x エントリのみを取得したり、ページネーションを行うなど、より複雑なことをしたい場合は、そのために SQL クエリを使用できます。

データが非常に少ないことがわかっている場合は、結果を配列に収集して並べ替えることができますcreated_at

@events = @projects.to_a + @assignments.to_a + @tasks.to_a
@events.sort_by! { |e| e.created_at }
于 2013-07-11T09:39:55.947 に答える