ActiveAdmin - 将范围与过滤器一起使用

Phi*_*way 7 ruby-on-rails formtastic activeadmin

在我的ActiveAdmin模型中,我有一个自定义范围来显示已删除的记录和几个用于按特定列搜索记录的过滤器.

单独使用过滤器或组合使用过滤器可按预期工作.

使用范围按预期工作.

问题是使用范围似乎覆盖了所有过滤器,并且在选择范围后,添加的任何过滤器都不会做任何事情.

有人有任何想法吗?我想要的是能够显示特定的范围,然后仍然能够在该范围内过滤结果.

    ActiveAdmin.register Example do
      scope :deleted do |example|
        Example.only_deleted
      end

      scope :all do |example|
        Example.with_deleted
      end

      filter :title
      filter :description

      index do
        column :title
        column :description
      end

    end
Run Code Online (Sandbox Code Playgroud)

[更新]

这是我一直在使用的解决方案.我在模型上设置了with_deleted范围,并在侧面包含过滤器以显示/隐藏已删除的结果.不理想,因为最初删除的结果也会显示,但至少所有过滤器可以一起使用.

    ActiveAdmin.register Example.with_deleted do

      filter :title
      filter :description
      filter :deleted, :as => :select, :collection => {:true => nil, :false => false }

      index do
        column :title
        column :description
      end

    end
Run Code Online (Sandbox Code Playgroud)

abh*_*has -3

创建另一个过滤器,而不是范围,该过滤器将根据示例是否被删除或全部来选择记录。并根据需要应用尽可能多的过滤器。

或者在过滤器中,在计算将在其上运行过滤器的选择器时,相应地运行范围,然后将过滤条件放在该选择器上。