2

在索引页面上,如果使用侧过滤器的搜索结果不为空,我在索引表上方有具有预定义范围的顶级过滤器,但如果没有任何结果,这行过滤器将消失...

但我在所有情况下都需要它,并且搜索结果的数量正确顶部过滤器

希望问题足够清楚=)

4

1 回答 1

2

一种方法是修改 Scopes 构建器类。你可以通过在 Rails 项目中添加一个初始化文件来轻松做到这一点:

配置/初始化程序/activeadmin_scope_patch.rb

module ActiveAdmin
  module Views
    class Scopes < ActiveAdmin::Component
      def build(scopes, options = {})
        scopes.each do |scope|
          build_scope(scope, options) if call_method_or_proc_on(self, scope.display_if_block)
        end
      end
    end
  end
end

这是有效的,因为默认渲染器会检查结果集是否为空,如果是则短路进程。通过删除该检查,渲染器将显示所有包含 0 个项目的范围,因为没有结果。

于 2013-02-07T06:46:53.600 回答