Rails: Batch-Attribut-Abfragen mit AREL

8

Ich möchte etwas wie find_in_batches verwenden, aber anstatt voll instanziierte AR-Objekte zu gruppieren, möchte ich ein bestimmtes Attribut, wie zum Beispiel die ID, gruppieren. Also, im Grunde eine Mischung aus find_in_batches und pluck :

%Vor%

Gibt es eine Möglichkeit, dies zu tun (vielleicht mit Arel), ohne die OFFSET / LIMIT-Logik selbst schreiben zu müssen oder wiederkehrende Edelsteine ​​wie paginate oder kaminari?

    
ChuckE 21.03.2013, 15:27
quelle

1 Antwort

2

Dies ist nicht die ideale Lösung, aber hier ist eine Methode, die nur die meisten von find_in_batches kopiert, aber eine Relation anstelle eines Arrays von Datensätzen (ungetestet) ergibt - einfach affen Sie sie in Relation :

%Vor%

Damit können Sie Folgendes tun:

%Vor%

Dies ist nicht die beste mögliche Implementierung (insbesondere in Bezug auf die Berechnung primary_key_offset, die einen Datensatz instanziiert), aber Sie erhalten den Geist.

    
m_x 21.03.2013 16:14
quelle