ActiveAdmin:按子对象的计数进行筛选

在一个严重依赖ActiveAdmin的Ruby on Rails应用程序中,我有一个赞助商模型,它与赞助模型相关联。 一个sponsor可以赞助许多孩子,因此一个sponsor可以有很多sponsorships

我想做的是,能够在赞助商索引页面上按赞助商数量过滤赞助商。 因此,举例来说,我只希望看到那些拥有多个赞助商或少于五个赞助商的赞助商,依此类推。 你明白了。 在Ruby中,我想要一个filter,它可以做以下几行:

 Sponsor.all.select { |sp| sp.sponsorships.count > 1 } 

事实上,我发现这很难做到。 默认的ActiveAdminfilter处理特定模型(或其子模型)的属性,而不是自定义方法,而我需要通过自定义方法精确过滤。 所以这是ActiveAdmin的组合视图/控制器sponsor.rb文件中的filter:

 filter :sponsorships_count, label: 'Sponsorships', as: :numeric 

其中:sponsorships_count不是赞助商模型的属性。

我试图使用Ransacker(似乎有些人已经成功使用它 ),但无法弄清楚正确的语法。 其他人有幸将filter指定为自定义(使用as: custom语法,例如此处并提供模型范围的名称作为filter名称),但这对我不起作用(该应用程序使用ActiveAdmin版本1.0.0。据报道,这种方法不适合这种方法)。

有人帮忙吗?