Rails Activerecord Relation: utilisation de la sous-requête en tant que table pour une instruction de sélection SQL

Quelqu'un peut-il m'aider à comprendre comment écrire la requête SQL suivante à l'aide de Rails (je suis à l'aide de Rails 4) Activerecord méthodes? Je sais que vous pouvez le faire avec find_by_sql mais je tiens à préserver l'enregistrement actif. Voici le sql pour postGreSQL db que je suis en train de créer:

SELECT * FROM 
(SELECT DISTINCT ON(table_a.id) table_a.name as alias_a, table_b.id, table_b.time
FROM table_1
LEFT OUTER JOIN table_b ON table_a.id = table_b.id
ORDER BY table_a.id, table_b.time asc) AS subquery
ORDER BY alias_a asc

Pour mon sous-requête, j'ai le texte suivant (qui génère le sql de la requête ci-dessus):

@subquery = table_a.select("DISTINCT ON(table_a.id) table_a.name as alias_a, table_b.time")     
@subquery = @subquery.joins("LEFT OUTER JOIN table_b ON table_a.id = table_b.id")
@subquery = @subquery.order("table_a.id, table_b.time asc")

Mais, je ne peux pas comprendre comment écrire une instruction select qui utilise @sous-requête comme la table pour l'instruction de sélection externe.

source d'informationauteur Vee