从整个活动管理员过滤器访问数据 collection

Accessing data from an entire AcitveAdmin filtered collection

试图解决这个问题,但运气不佳。现在,我正在使用 ActiveAdmin 并且我试图在我的仪表板页面顶部显示我当前 collection 中售出的图书总数。只是一点背景;我的数据库条目是订单,它有很多列,其中之一是 number_books。我发现我可以为分页排序 collection 的第一页计算 number_books,并且我找到了一种方法来为数据库中的每个 Order 实例计算 ALL number_books,什么我无法做的是计算整个当前筛选的 collection,因为使用以下结果仅来自分页 collection.

第一页的总和
"Total Books on page: #{collection.pluck(:number_books).reduce(:+)}"

有谁知道访问整个过滤 collection 的方法吗?我为其工作的人不想滚动浏览每一页并手动计算每一页的书籍数量,如果他们不需要的话,因为可能有 20、30 或 40 页的记录有在当前 collection 中按他们试图对订单进行排序的任何内容进行排序。

感谢任何帮助!

下面的代码解决了我的问题。

Order.ransack(params[:q]).result.map{|order| order.number_books}.reduce(:+)

尝试:

"Total Books on page: #{controller.send(:find_collection, except: :pagination).sum(&:number_books)}"