Messages has_many Commentairesnamed_scope commander les messages de la dernière date de commentaire
J'utilise searchlogic qui commande par named scopes. Donc, j'aimerais que la portée soit classée en fonction du commentaire le plus récent de chaque publication.
named_scope :ascend_by_comment, :order => ...comments.created_at??...
Je ne suis pas sûr de savoir comment faire un :joins
et obtenir que les plus récents commentaires et trier par son champ created_at
, le tout dans un named_scope
. J'utilise mysql, fyi.
EDIT:
Ceci est la requête SQL que je serais en train d'imiter:
SELECT tickets.*, comments.created_at AS comment_created_at FROM tickets
INNER JOIN
(SELECT comments.ticket_id, MAX(comments.created_at) AS created_at
FROM comments group by ticket_id) comments
ON tickets.id = comments.ticket_id ORDER BY comment_created_at DESC;
J'allais pour le cas le plus simple. Je me suis dit que je pourrais passer à un LEFT JOIN après avoir travaillé avec INNER JOIN. En outre, ceci est pour un helpdesk et chaque "poste" a un "commentaire" initial ainsi je suis d'accord avec l'utilisation d'INNER JOIN dans ce cas. – wesgarrison
J'ai ajouté ': group =>" posts.id "' pour plus de clarté dans le cas où je/quelqu'un d'autre veut tirer dans le commment.id aussi bien. Fonctionne parfaitement avec searchlogic et will_paginate. – wesgarrison