0

我设法用连接表进行查询。我想知道如何添加另一个联接表(例如publication_comments),计算出版物有多少评论,将publication_comments_count 与reviews_count 相加,以DESC顺序排列。

我已经阅读了 rails 指南和许多关于 stackoverflow 的示例,但是仍然需要有人来协助语法以及我应该如何将所有部分收集在一个地方。谢谢。

@publication = Publication.all(
                          joins: :reviews,
                          select: '"publications".*, count("reviews".id) as reviews_count', 
                          group: '"publications".id',
                          order: "reviews_count DESC")
4

1 回答 1

0

ActiveRecord 允许您只向 joins 方法提供一个字符串。所以你可以只写原始的 SQL 连接条件:

Publication.select("..., COUNT(publication_comments.id) as pub_count")
 .join('JOIN reviews on (..) JOIN publication_comments')
 .group('publications.id'
于 2013-09-04T11:22:19.220 回答