Ich frage mich, ob es eine effiziente Möglichkeit gibt, die Ergebnisse mehrerer ActiveRecord Objekte in Rails zu kombinieren. Zum Beispiel könnte ich drei individuelle Aufrufe an drei einzelne Tabellen machen, und ich möchte, dass die Ergebnisse kombiniert und nach einer gemeinsamen Spalte sortiert werden.Wie ActiveRecord Objekte zu kombinieren?
Hier ist ein super Grundcodebeispiel, das hoffentlich meine Frage machen wird leichter zu verstehen:
@results1 = Table1.find(:all)
@results2 = Table2.find(:all)
@results3 = Table3.find(:all)
@combined_results_sorted_by_date_column = (how?)
Wie bereits von anderen vorgeschlagen, hier ist eine Lösung für das Problem.
Was passiert, wenn ich nach Datum sortieren möchte, aber Tabelle3 verweist auf die Spalte "created_on" als Datum?
Ich habe einen Usecase, kombinierte Kommentare, Status und Commits für eine Zeitleiste in einer Issue-Management-Anwendung. – dangerousdave
In diesem Fall müssen sie alle auf eine bestimmte Schnittstelle antworten oder eine Möglichkeit haben, in eine solche zu mappen. Der entscheidende Punkt ist, dass das Nachdenken über "Datenbanktabellen" zu schlechten Designs führt. Ich wollte nicht implizieren, dass du keine Daten von verschiedenen Orten verwendest, sondern nur fragst, wie du darüber nachdenkst. –