Ruby on Rails Active Admin - 显示 HABTM 的重复记录

pro*_*ons 4 ruby ruby-on-rails activeadmin

我正在 Active Admin gem 中设计一个基本的文件管理器(资产模型)。每个资产 HABTM 组,反之亦然。

在我的 active_admin Asset 资源中,我有一个过滤器,我希望能够选择多个组进行过滤,所以我添加了:

filter :groups_id, :as => :check_boxes, :collection => proc {Group.all}
Run Code Online (Sandbox Code Playgroud)

所有组都按预期显示为复选框。但是,如果我将资产_1、资产_2 和组_1 分配给资产_1 和资产_2,将组_2 分配给资产_2,当我按两个角色进行过滤时,资产_2 会自己列出两次。

如何限制过滤器仅使用要返回的“独特”或“独特”资产?

我还有另一个问题,即过滤器在我的任何范围内都无法正常工作。

小智 5

快速更新 Will 的答案。我正在运行 Rails 5.0 和 ActiveAdmin 1.0,并clean_search_params返回一个错误。但这反而奏效了:

def apply_filtering(chain)
  super
  @search.result(distinct: true)
end
Run Code Online (Sandbox Code Playgroud)

谢谢!