Railsで複数のActiveRecordオブジェクトの結果を組み合わせる効率的な方法があるのだろうかと思います。たとえば、3つの個別のテーブルに3回の呼び出しを行い、結果を結合して共通の列でソートしたいとします。ActiveRecordオブジェクトを結合する方法は?
はここでうまくいけば理解しやすい私の質問を行いますスーパー基本的なコードの例です:
@results1 = Table1.find(:all)
@results2 = Table2.find(:all)
@results3 = Table3.find(:all)
@combined_results_sorted_by_date_column = (how?)
他の人が示唆したように、ここでの問題に対する1つの解決策です。
@combined_results = @result1 + @result2 + @result3
@combined_results.sort! {|x,y| x.date <=> y.date}
日付でソートする場合はどうすればよいですか?テーブル3は日付として「created_on」列を参照していますか?
私は、問題管理アプリケーションでタイムラインのコメント、ステータス、コミットを組み合わせて使用しています。 – dangerousdave
この場合、それらはすべて特定のインターフェイスに応答するか、または1つのインターフェイスにマップする方法が必要です。要点は、データベーステーブルの観点から考えると、あなたを貧しいデザインに導くことです。私はあなたが別の場所からのデータを使用しないことを暗示しようとしていませんでした。ちょうどあなたがそれにどのようにアプローチ/考えているか質問しています。 –