Je me demande s'il existe un moyen efficace de combiner les résultats de plusieurs objets ActiveRecord dans Rails. Par exemple, je pourrais faire trois appels individuels à trois tables individuelles, et je veux que les résultats soient combinés, et triés par une colonne commune.Comment combiner des objets ActiveRecord?
Voici un exemple super code de base qui nous l'espérons rendre ma question plus facile à comprendre:
@results1 = Table1.find(:all)
@results2 = Table2.find(:all)
@results3 = Table3.find(:all)
@combined_results_sorted_by_date_column = (how?)
Comme suggéré par d'autres, voici une solution au problème. Que faire si je veux trier par date, mais que Table3 fait référence à la colonne "created_on" en tant que date?
Je dispose d'un cas d'utilisation, de commentaires, de statuts et de validations combinés pour un scénario dans une application de gestion des problèmes. – dangerousdave
Dans ce cas, ils doivent tous répondre à une interface spécifique ou avoir un moyen d'être mappés en un. Le point clé est que le fait d'y penser en termes de «tables de base de données» va vous mener vers de mauvaises conceptions. Je n'essayais pas d'insinuer que vous n'utilisiez pas les données provenant de différents endroits, juste en vous demandant comment vous abordez/pensez à ce sujet. –