Il existe une méthode select dans ARel, mais vous devez utiliser les noms de table corrects (c'est-à-dire au pluriel et attention si vous avez des modèles polymorphes ou si vous utilisez set_table_name ou une autre pratique non standard similaire).
@items = Item.
select('users.name', 'users.created_at', 'orders.created_at', 'suppliers.name', 'agents.name', 'manufacturers.name').
where(:users => { :fulfilled => true }).
includes(:orders => [:supplier, :agent], :manufacturer)
"Nous pouvons utiliser select avec les jointures mais pas avec les inclusions" - @Bhavesh_A_P
Note :
Comme l'a souligné @Bhavesh_A_P ci-dessus, select
con includes
ne produit pas un comportement cohérent. Il semble que si l'association incluse ne renvoie aucun résultat, select
fonctionnera correctement, s'il renvoie des résultats, l'instruction select n'aura aucun effet. En fait, elle sera complètement ignorée, de sorte que votre instruction select pourrait faire référence à des noms de tables invalides sans qu'aucune erreur ne soit produite. select
con joins
produira un comportement cohérent.