投稿has_manyコメント
名前付きスコープで並べ替えるsearchlogicを使用しています。そこで、各投稿の最新のコメント順に並べ替える名前付きスコープが欲しいのです。
named_scope :ascend_by_comment, :order => ...comments.created_at??...
:joins
を実行して最新のコメントのみを取得し、そのcreated_at
フィールドですべてを並べ替える方法がわかりませんnamed_scope
。
私はmysql、fyiを使用しています。
編集:
これは私がエミュレートしようとしているSQLクエリです:
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;