如何通过连接表过滤 ActiveAdmin 索引列表?

Nic*_*ban 5 ruby ruby-on-rails activeadmin ransack

假设我有一个 table posts,另一个reviews包含 apost_id和 a rating(整数)的表。

如何添加一个过滤器以app/admin/post.rb返回具有特定总分的帖子?(例如 SUM(reviews. rating) GROUP BY (posts.id))。我希望过滤器与其他过滤器一起显示在索引的右侧,并且理想情况下充当范围输入。

需要明确的是,当我说“过滤器”时,我指的是 ActiveAdminfilter方法,它将过滤器添加到索引页面的右侧边栏。

我创建了一个范围,其中Post返回带有分数的帖子,但我无法找到在 ActiveAdmin 过滤器中使用它的方法。

注意:我重写了我的示例,因为我原来的示例没有体现问题的复杂性。

小智 0

使用计数器缓存列来存储评论数

http://railscasts.com/episodes/23-counter-cache-column

然后,每次对该帖子创建评论时,该列都会更新。这也有助于提高搜索性能。