【问题标题】:ActiveAdmin: access to the result of filtersActiveAdmin:访问过滤器的结果
【发布时间】:2019-03-21 17:06:58
【问题描述】:

我想在 ActiveAdmin 索引页面的顶部显示一些统计信息。

假设我有一个汽车模型,具有颜色属性和制造年份。在我的索引页面的顶部,我想显示红色汽车的数量。但我希望该计数反映过滤器的使用;如果我选择仅显示 1995 年制造的汽车,我希望红色汽车数量相应地改变。

如何访问过滤后的列表?我猜测存在一个包含过滤操作结果的变量,但我找不到它。

【问题讨论】:

标签: ruby-on-rails activeadmin


【解决方案1】:

事实证明,您可以在索引中的任何位置使用变量 collection

这样的东西运行良好,并且反映了过滤器的状态:

index do
  div "Total: #{collection.count}"
  column :attribute1
  column :attribute2
  actions
end

另一种方法是使用ransack,这样:

ModelName.ransack(params[:q]).result

但它做了一个无用的查询,无缘无故地再次调用ransack。

灵感来自this question

【讨论】:

    【解决方案2】:

    使用这个方法

    apply_filtering(collection)
    

    灵感来自this question

    【讨论】:

    • 感谢您提供此代码 sn-p,它可能会提供一些有限的即时帮助。 proper explanation 将通过展示为什么这是解决问题的好方法,并使其对有其他类似问题的未来读者更有用,从而大大提高其长期价值。请edit您的回答添加一些解释,包括您所做的假设。
    猜你喜欢
    • 2019-05-02
    • 2015-06-17
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 2015-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多