2012-09-12 4 views
0

J'ai une ligne de code qui ressemble à cecitraduire requête SQL pour activerecord

@words = Word.connection.select_all("select text, count(*) as occurs from words join works on words.work_id = works.id where works.grouping == 'group1' group by text order by occurs desc limit 10") 

Je voudrais écrire dans un plusieurs rails/chemin d'enregistrement actif, mais la syntaxe est encore assez nouveau pour moi.

chaque travail a beaucoup de mots, chaque mot appartient à un travail.

Répondre

0

Peut-être que ce code fonctionne pour vous:

Word.includes(:works).where("works.grouping == 'group1'").limit(10).count(:group => :text) 

La méthode includes créer une jointure avec votre table de travaux. La méthode where est pour les conditions, le limit est explicite et le count avec group par une colonne aussi.