J'ai 3 tables: groupes, utilisateurs et messages. Les messages ont un user_id et les utilisateurs ont un group_id. Je voudrais savoir quel groupe a l'affiche supérieure entre une plage de dates, de préférence en utilisant seulement ActiveRecord. Je pense que cette requête fait le travail:Existe-t-il un moyen de convertir ceci en rails arel requêtes? Ou une meilleure façon de faire cette requête?
select g_id, count(p_id) as posts_count
from (
select users.group_id as g_id, posts.id as p_id
from users inner join posts
on users.id = posts.user_id
where users.group_id is not null
and posts.created_at > :since
and posts.created_at <= :until
) as foo
group by g_id
order by posts_count desc limit 1;
quelqu'un peut me aider traduis à rubis?